# Inofficial User Guide von Ben Hest, [https://forum.digikey.com/t/an-unofficial-discourse-user-reference-guide/](https://forum.digikey.com/t/an-unofficial-discourse-user-reference-guide/) # Operations forum.netzwissen.de läuft mit separaten Containern für Datenbank und Web. Siehe [https://meta.discourse.org/t/how-to-move-from-standalone-container-to-separate-web-and-data-containers/29413](https://meta.discourse.org/t/how-to-move-from-standalone-container-to-separate-web-and-data-containers/29413) Entsprechend gibt es separate *.yml Konfigurationen für den Daten-Container und den Web-Container. ``` root@develd:/var/discourse/containers# ls -la total 28 drwxr-xr-x 2 root root 4096 Aug 20 10:11 . drwxr-xr-x 12 root root 4096 Apr 30 05:37 .. -rw-r--r-- 1 root root 4637 Nov 11 2020 app.yml.inactive -rw-r--r-- 1 root root 1124 Nov 11 2020 data.yml -rw-r--r-- 1 root root 0 Nov 11 2020 .gitkeep -rw-r--r-- 1 root root 5059 Aug 20 10:11 web_only.yml ``` # Launcher ``` root@develd:/var/discourse# ./launcher Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING] Commands: start: Start/initialize a container stop: Stop a running container restart: Restart a container destroy: Stop and remove a container enter: Open a shell to run commands inside the container logs: View the Docker logs for a container bootstrap: Bootstrap a container for the config based on a template run: Run the given command with the config in the context of the last bootstrapped image rebuild: Rebuild a container (destroy old, bootstrap, start new) cleanup: Remove all containers that have stopped for > 24 hours start-cmd: Generate docker command used to start container Options: --skip-prereqs Don't check launcher prerequisites --docker-args Extra arguments to pass when running docker --skip-mac-address Don't assign a mac address --run-image Override the image used for running the container ``` # Logs /var/discourse/shared/standalone/log/ Allgemeine Debug info /var/discourse/discourse-doctor ``` Found containers/app.yml ====== YAML SETTINGS ====== DISCOURSE_HOSTNAME=forum.netzwissen.de SMTP_ADDRESS=mail.netzwissen.de DEVELOPER_EMAILS=REDACTED SMTP_PASSWORD=REDACTED SMTP_PORT=587 SMTP_USER_NAME=noreply-discourse@netzwissen.de LETSENCRYPT_ACCOUNT_EMAIL=REDACTED ====== DOCKER INFO ====== DOCKER VERSION: Docker version 19.03.8, build afacb8b7f0 DOCKER PROCESSES (docker ps -a) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7333f3210491 local_discourse/app "/sbin/boot" 16 hours ago Up 16 hours 127.0.0.1:884->80/tcp app 539c78cffb6a 0dbf6b4c454b "docker-entrypoint.s…" 5 weeks ago Exited (0) 17 hours ago zammad-docker-compose_zammad-memcached_1 Discourse container app is running ``` # Upgrade ``` ./launcher stop web_only && ./launcher rebuild data && ./launcher rebuild web_only ``` # Plugins 1. git clone [https://github.com/discourse/docker_manager.git](https://github.com/discourse/docker_manager.git) See [https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb](https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb) for the official list. Plugin Installation [https://meta.discourse.org/t/install-plugins-in-discourse/19157](https://meta.discourse.org/t/install-plugins-in-discourse/19157) # Maintenance - One CPU and 1GB of memory, with swap, is the minimum for a basic Discourse community. As your community grows you may need more memory or CPU resources. - [Our Docker container install]([https://github.com/discourse/discourse/blob/master/docs/INSTALL.md](https://github.com/discourse/discourse/blob/master/docs/INSTALL.md)) is the only one we officially support. It guarantees easy updates, and all recommended optimizations from the Discourse team. - You should get an email notification when new versions of Discourse are released. To update your instance via our easy one click upgrade process, visit [/admin/upgrade](/admin/upgrade). - Some other things you might eventually want to set up: 1. [Automatic daily backups]([https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855)) 1. [HTTPS support]([https://meta.discourse.org/t/allowing-ssl-for-your-discourse-docker-setup/13847](https://meta.discourse.org/t/allowing-ssl-for-your-discourse-docker-setup/13847)) 1. [Content Delivery Network support]([https://meta.discourse.org/t/enable-a-cdn-for-your-discourse/14857](https://meta.discourse.org/t/enable-a-cdn-for-your-discourse/14857)) 1. [Reply via Email]([https://meta.discourse.org/t/set-up-reply-via-email-support/14003](https://meta.discourse.org/t/set-up-reply-via-email-support/14003)) 1. [Import and Export your data]([https://meta.discourse.org/t/move-your-discourse-instance-to-a-different-server/15721](https://meta.discourse.org/t/move-your-discourse-instance-to-a-different-server/15721)) 1. [Change the domain name]([https://meta.discourse.org/t/how-do-i-change-the-domain-name/16098](https://meta.discourse.org/t/how-do-i-change-the-domain-name/16098)) 1. [Multiple Discourse instances on the same server]([https://meta.discourse.org/t/multisite-configuration-with-docker/14084](https://meta.discourse.org/t/multisite-configuration-with-docker/14084)) 1. [Import old content from vBulletin, PHPbb, Vanilla, Drupal, BBPress, etc]([https://github.com/discourse/discourse/tree/master/script/import_scripts](https://github.com/discourse/discourse/tree/master/script/import_scripts)) 1. A firewall on your server? [Configure firewall]([https://meta.discourse.org/t/configure-a-firewall-for-discourse/20584](https://meta.discourse.org/t/configure-a-firewall-for-discourse/20584)). 1. A user friendly [offline page when rebuilding or upgrading?]([https://meta.discourse.org/t/adding-an-offline-page-when-rebuilding/45238](https://meta.discourse.org/t/adding-an-offline-page-when-rebuilding/45238)) 1. Embed Discourse [in your WordPress install]([https://github.com/discourse/wp-discourse](https://github.com/discourse/wp-discourse)), or [on your static HTML site]([https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963](https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963)) ``` cd /var/discourse git pull ./launcher rebuild app ``` # User Operations **Mass invite** 1. One user per line. 1. Email is required in the first column, and the email must be valid. 1. Any permissions groups you want this user to be a member of should be in second column. For multiple groups, separate group names with a semicolon group_1;group_2;group_3 1. Normally invited users arrive at the homepage. If you would rather invited users end up on a specific topic, enter that Topic ID in the third column. `name@example.com,group_1;group_2,topic_id` # Statistics Plugin: Data Explorer [https://github.com/SidVal/discourse-data-explorer/blob/queries/querys.md](https://github.com/SidVal/discourse-data-explorer/blob/queries/querys.md) # Zutritt zum Container ``` docker exec -it e6fe156e2091 /bin/bash ``` # Special settings ## Send personal message to all users on a Discourse site [https://meta.discourse.org/t/send-a-personal-message-or-email-to-all-users-on-a-discourse-site/229341](https://meta.discourse.org/t/send-a-personal-message-or-email-to-all-users-on-a-discourse-site/229341) # Backup & Restore ## Backup ``` root@docker2:/var/discourse# ./launcher enter web_only discourse backup ``` Beim Backup übers UI wird ein Link an die Admin Adresse geschickt. Der Link enthält einen passenden token, der zeitlich begrenzt und nur im gleichen Auth Kontext funktioniert. ## Restore Die Restore Datei muss nach */var/discourse/shared/web-only/backups/default* Um "aus Versehen" überschreiben zu vermeinden, muss enable_restore explizit aktiviert sein. ``` root@docker2:/var/discourse# ./launcher enter web_only discourse enable_restore discourse restore netzwissen-forum-2023-10-07-125819-v20230913194832.tar.gz ```