Move container-setup directory from 08-reference/ to 02-setup/ to follow PR feedback. The container-setup documentation provides a more linear and coherent flow compared to the previous unstructured setup files. Changes: - Move container-setup/ from docs/08-reference/ to docs/02-setup/ - Integrate content from setup-options.md into structured flow: - Create new 06-setup-examples.md with practical deployment scenarios - Enhance 03-start-setup.md with site creation details from setup-options - Remove redundant 01-setup-options.md (content now integrated) - Rename 02-single-server-example.md to 07-single-server-example.md - Update all cross-references throughout documentation: - Update README.md with new structure under Setup section - Fix links in site-operations.md and migration docs - Add navigation links between container-setup files and examples - Maintain container-setup's linear flow: overview → build → start → env → overrides - Add practical examples document (06-setup-examples.md) that follows the container-setup guide Result: Documentation now follows a clear progression from conceptual overview through practical examples, with all setup information properly organized under 02-setup/.
3.2 KiB
Site operations
💡 You should setup
--project-nameoption indocker-composecommands if you have non-standard project name.
Setup new site
Note:
- Wait for the
dbservice to start andconfiguratorto exit before trying to create a new site. Usually this takes up to 10 seconds. - Also you have to pass
-p <project_name>if-ppassed previously eg.docker-compose -p <project_name> exec (rest of the command).
docker-compose exec backend bench new-site --mariadb-user-host-login-scope=% --db-root-password <db-password> --admin-password <admin-password> <site-name>
If you need to install some app, specify --install-app. To see all options, just run bench new-site --help.
To create Postgres site (assuming you already use Postgres compose override) you need have to do set root_login and root_password in common config before that:
docker-compose exec backend bench set-config -g root_login <root-login>
docker-compose exec backend bench set-config -g root_password <root-password>
Also command is slightly different:
docker-compose exec backend bench new-site --mariadb-user-host-login-scope=% --db-type postgres --admin-password <admin-password> <site-name>
Push backup to S3 storage
We have the script that helps to push latest backup to S3.
docker-compose exec backend push_backup.py --site-name <site-name> --bucket <bucket> --region-name <region> --endpoint-url <endpoint-url> --aws-access-key-id <access-key> --aws-secret-access-key <secret-key>
Note that you can restore backup only manually.
Edit configs
Editing config manually might be required in some cases, one such case is to use Amazon RDS (or any other DBaaS). For full instructions, refer to the wiki. Common question can be found in Issues and on forum.
common_site_config.json or site_config.json from sites volume has to be edited using following command:
docker run --rm -it \
-v <project-name>_sites:/sites \
alpine vi /sites/common_site_config.json
Instead of alpine use any image of your choice.
Health check
For socketio and gunicorn service ping the hostname:port and that will be sufficient. For workers and scheduler, there is a command that needs to be executed.
docker-compose exec backend healthcheck.sh --ping-service mongodb:27017
Additional services can be pinged as part of health check with option -p or --ping-service.
This check ensures that given service should be connected along with services in common_site_config.json. If connection to service(s) fails, the command fails with exit code 1.
For reference of commands like backup, drop-site or migrate check official guide or run:
docker-compose exec backend bench --help
Migrate site
Note:
- Wait for the
dbservice to start andconfiguratorto exit before trying to migrate a site. Usually this takes up to 10 seconds.
docker-compose exec backend bench --site <site-name> migrate