# Referenceguide

# File Structure

Your Shopware project is expected to use ~/public_html as the public web root. This must point to Shopware’s /public directory, either directly or via symlink. The same applies to the main Shopware directory — you may symlink it if you are using a release-based deployment.

Path Purpose
~/public_html Web document root — must point to the public/ folder of Shopware.
~/shopware/ Base directory of the Shopware installation. Can also be a symlink.
~/shopware/public/ Public assets and front controller (index.php).
~/shopware/vendor/ Composer dependencies.
~/shopware/custom/ Custom plugins and themes.
~/shopware/config/ Configuration files (.env, packages/, services.yaml, etc.).
~/nginx/ Optional: Custom Nginx configuration.

ℹ️ Note: Symbolic links are fully supported — e.g., public_htmlcurrent/public, shopwarereleases/20250715. Just ensure that the final paths resolve correctly to the intended directories inside the Shopware project.

# Permissions

Correct file and directory permissions are required to allow Shopware to read/write necessary files while maintaining security:

find ~/shopware -type f -exec chmod 644 {} \;
find ~/shopware -type d -exec chmod 755 {} \;
chown -R $USER:$USER ~/shopware

Make sure your CLI user has ownership of the entire Shopware installation to avoid permission issues during updates or plugin installation.

# Composer

Composer is required to manage Shopware packages and dependencies. It should be used from the base directory of the Shopware installation:

cd ~/shopware
composer install

Use this for installing plugins, platform updates, or rebuilding autoloaders.

# Cache Management

Shopware includes multiple caching layers, which should be cleared when installing plugins, making configuration changes, or performing updates.

Clear cache via CLI:

cd ~/shopware
bin/console cache:clear

If Redis and Varnish are in use (recommended), you may also manually clear these services:

tscli redis clear
tscli varnish clear

# Cronjobs and Scheduled Tasks

Shopware handles background jobs and scheduled tasks internally. To ensure these run correctly, make sure the following cron is set up in your user crontab:

*/5 * * * * cd ~/shopware && bin/console scheduled-task:run >> ~/logs/scheduled-task.log 2>&1

# Updates

Before updating Shopware, always back up your code and database. Then:

cd ~/shopware
composer update
bin/console system:update:finish

# Logs

Shopware logs are stored in:

~/shopware/var/log

You can monitor errors, system events, and plugin issues from these files.


For any issues related to server performance or access-level troubleshooting, please contact our support team. For application-specific questions or plugin support, refer to the Shopware documentation or community forums.