From 2418023dddc0c9f23f5c03b962664b31a6011f6a Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Tue, 26 Dec 2023 19:28:34 +1000 Subject: [PATCH 01/14] remove venv --- docker/docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index a4d73187..4ac03118 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -96,7 +96,7 @@ services: container_name: allianceauth_gunicorn <<: [*allianceauth-base] entrypoint: [ - "/opt/venv/bin/gunicorn", + "gunicorn", "myauth.wsgi", "--bind=0.0.0.0:8000", "--workers=3", @@ -109,7 +109,7 @@ services: container_name: allianceauth_worker_beat <<: [*allianceauth-base] entrypoint: [ - "/opt/venv/bin/celery", + "celery", "-A", "myauth", "beat" @@ -118,7 +118,7 @@ services: allianceauth_worker: <<: [*allianceauth-base, *allianceauth-health-checks] entrypoint: [ - "/opt/venv/bin/celery", + "celery", "-A", "myauth", "worker", From 036a17ad3bfe559bf600499c5199842a2a670fd1 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Tue, 26 Dec 2023 19:34:09 +1000 Subject: [PATCH 02/14] note the container name changes after refactor --- docs/installation-containerized/docker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/installation-containerized/docker.md b/docs/installation-containerized/docker.md index 7f1954ae..dc779f59 100644 --- a/docs/installation-containerized/docker.md +++ b/docs/installation-containerized/docker.md @@ -14,7 +14,7 @@ You should have the following available on the system you are using to set this 1. run `./scripts/prepare-env.sh` to set up your environment 1. (optional) Change `PROTOCOL` to `http://` if not using SSL in `.env` 1. run `docker-compose --env-file=.env up -d` (NOTE: if this command hangs, follow the instructions [here](https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged)) -1. run `docker-compose exec allianceauth bash` to open up a terminal inside your auth container +1. run `docker compose exec allianceauth-gunicorn bash` to open up a terminal inside your auth container 1. run `auth migrate` 1. run `auth collectstatic` 1. run `auth createsuperuser` @@ -57,7 +57,7 @@ Using a custom docker image is the preferred approach, as it gives you the stabi 1. Add each additional package that you want to install to a single line in `conf/requirements.txt`. It is recommended, but not required, that you include a version number as well. This will keep your packages from magically updating. You can lookup packages on , and copy everything after `pip install` from the top of the page to use the most recent version. It should look something like `allianceauth-signal-pings==0.0.7`. Every entry in this file should be on a separate line 1. In `docker-compose.yml`, comment out the `image` line under `allianceauth` (line 36... ish) and uncomment the `build` section 1. run `docker-compose --env-file=.env up -d`, your custom container will be built, and auth will have your new packages. Make sure to follow the package's instructions on config values that go in `local.py` -1. run `docker-compose exec allianceauth_gunicorn bash` to open up a terminal inside your auth container +1. run `docker compose exec allianceauth_gunicorn bash` to open up a terminal inside your auth container 1. run `allianceauth update myauth` 1. run `auth migrate` 1. run `auth collectstatic` From ca0cdd6e150ec279e2f809c892b4cb89644d7270 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Tue, 26 Dec 2023 19:34:25 +1000 Subject: [PATCH 03/14] remove old docs images --- docker/docs/images/grafana-host.png | Bin 87028 -> 0 bytes docker/docs/images/nginx-host.png | Bin 87577 -> 0 bytes docker/docs/images/proxy-manager-ssl.png | Bin 31967 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docker/docs/images/grafana-host.png delete mode 100644 docker/docs/images/nginx-host.png delete mode 100644 docker/docs/images/proxy-manager-ssl.png diff --git a/docker/docs/images/grafana-host.png b/docker/docs/images/grafana-host.png deleted file mode 100644 index a93c6ec601c5f42e339da52023aaaf577784c707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87028 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 EFD9{YCIA2c diff --git a/docker/docs/images/nginx-host.png b/docker/docs/images/nginx-host.png deleted file mode 100644 index 92d661bad0d0242a05cd0b1d9638afccab68da7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87577 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 z 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%0Dr*jWj$3aKI&a!bkl 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 diff --git a/docker/docs/images/proxy-manager-ssl.png b/docker/docs/images/proxy-manager-ssl.png deleted file mode 100644 index f311d2588d602975ab49b24186b990baaf63f048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31967 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 Date: Tue, 26 Dec 2023 19:35:11 +1000 Subject: [PATCH 04/14] use docker compose instead of dash, add hint --- docs/installation-containerized/docker.md | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/docs/installation-containerized/docker.md b/docs/installation-containerized/docker.md index dc779f59..d75ee3cb 100644 --- a/docs/installation-containerized/docker.md +++ b/docs/installation-containerized/docker.md @@ -8,13 +8,17 @@ You should have the following available on the system you are using to set this * git * curl +:::{hint} +If at any point `docker compose` does not work, but `docker-compose` does, you have an older version of Docker (and Compose), please update before continuing. Be cautious of these two commands and any suggestions copy and pasted from the internet +::: + ## Setup Guide 1. run `bash <(curl -s https://gitlab.com/allianceauth/allianceauth/-/raw/master/docker/scripts/download.sh)`. This will download all the files you need to install Alliance Auth and place them in a directory named `aa-docker`. Feel free to rename/move this folder. 1. run `./scripts/prepare-env.sh` to set up your environment 1. (optional) Change `PROTOCOL` to `http://` if not using SSL in `.env` -1. run `docker-compose --env-file=.env up -d` (NOTE: if this command hangs, follow the instructions [here](https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged)) -1. run `docker compose exec allianceauth-gunicorn bash` to open up a terminal inside your auth container +1. run `docker compose --env-file=.env up -d` (NOTE: if this command hangs, follow the instructions [here](https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged)) +1. run `docker compose exec allianceauth_gunicorn bash` to open up a terminal inside an auth container 1. run `auth migrate` 1. run `auth collectstatic` 1. run `auth createsuperuser` @@ -46,7 +50,7 @@ That's it! You should now be able to access your auth install at , and copy everything after `pip install` from the top of the page to use the most recent version. It should look something like `allianceauth-signal-pings==0.0.7`. Every entry in this file should be on a separate line -1. In `docker-compose.yml`, comment out the `image` line under `allianceauth` (line 36... ish) and uncomment the `build` section -1. run `docker-compose --env-file=.env up -d`, your custom container will be built, and auth will have your new packages. Make sure to follow the package's instructions on config values that go in `local.py` +1. In `docker compose.yml`, comment out the `image` line under `allianceauth` (line 36... ish) and uncomment the `build` section +1. run `docker compose --env-file=.env up -d`, your custom container will be built, and auth will have your new packages. Make sure to follow the package's instructions on config values that go in `local.py` 1. run `docker compose exec allianceauth_gunicorn bash` to open up a terminal inside your auth container 1. run `allianceauth update myauth` 1. run `auth migrate` @@ -71,9 +75,9 @@ _NOTE: It is recommended that you put any secret values (API keys, database cred Whether you're using a custom image or not, the version of auth is dictated by $AA_DOCKER_TAG in your `.env` file. 1. To update to a new version of auth, update the version number at the end (or replace the whole value with the tag in the release notes). -1. run `docker-compose pull` -1. run `docker-compose --env-file=.env up -d` -1. run `docker-compose exec allianceauth bash` to open up a terminal inside your auth container +1. run `docker compose pull` +1. run `docker compose --env-file=.env up -d` +1. run `docker compose exec allianceauth_gunicorn bash` to open up a terminal inside your auth container 1. run `allianceauth update myauth` 1. run `auth migrate` 1. run `auth collectstatic` @@ -83,5 +87,5 @@ _NOTE: If you specify a version of allianceauth in your `requirements.txt` in a ### Custom Packages 1. Update the versions in your `requirements.txt` file -1. Run `docker-compose build` -1. Run `docker-compose --env-file=.env up -d` +1. Run `docker compose build` +1. Run `docker compose --env-file=.env up -d` From 51b86f88b927dab1fce58f426910a7f055c0ffa6 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Tue, 26 Dec 2023 20:41:53 +1000 Subject: [PATCH 05/14] generate some basic docker install guides for services --- docs/features/services/index.md | 3 + docs/features/services/mumble-docker.md | 207 ++++++++++++++++++++ docs/features/services/mumble.md | 8 +- docs/features/services/openfire-docker.md | 180 +++++++++++++++++ docs/features/services/teamspeak3-docker.md | 179 +++++++++++++++++ 5 files changed, 573 insertions(+), 4 deletions(-) create mode 100644 docs/features/services/mumble-docker.md create mode 100644 docs/features/services/openfire-docker.md create mode 100644 docs/features/services/teamspeak3-docker.md diff --git a/docs/features/services/index.md b/docs/features/services/index.md index bef4d8a2..1f0f8e11 100644 --- a/docs/features/services/index.md +++ b/docs/features/services/index.md @@ -10,10 +10,13 @@ discord discourse mumble +mumble-docker openfire +openfire-docker phpbb3 smf teamspeak3 +teamspeak3-docker xenforo ::: diff --git a/docs/features/services/mumble-docker.md b/docs/features/services/mumble-docker.md new file mode 100644 index 00000000..5b9df018 --- /dev/null +++ b/docs/features/services/mumble-docker.md @@ -0,0 +1,207 @@ +# Mumble + +An alternate install guide for Mumble using Docker, better suited to an Alliance Auth Docker install + +Mumble is a free voice chat server. While not as flashy as TeamSpeak, it has all the functionality and is easier to customize. And is better. I may be slightly biased. + +## Configuring Auth + +In your auth project's settings file (`aa-docker/conf/local.py`), do the following: + +- Add `'allianceauth.services.modules.mumble',` to your `INSTALLED_APPS` list +- Append the following to your auth project's settings file: + +```python +# Mumble Configuration +MUMBLE_URL = "mumble.example.com" +``` + +Add the following lines to your `.env` file + +```env +# Mumble +MUMBLE_SUPERUSER_PASSWORD = superuser_password +MUMBLE_ICESECRETWRITE = icesecretwrite +MUMBLE_SERVERPASSWORD = serverpassword +``` + +Finally, restart your stack and run migrations + +```shell +docker compose --env-file=.env up -d +docker compose exec allianceauth_gunicorn bash +auth migrate +``` + +## Docker Installations + +### Installing Mumble and Authenticator + +Inside your `aa-docker` directory, clone the authenticator to a sub directory as follows + +```shell +git clone https://gitlab.com/allianceauth/mumble-authenticator.git +``` + +Add the following to your `docker-compose.yml` under the `services:` section + +```docker + mumble-server: + image: mumblevoip/mumble-server:latest + restart: always + environment: + - MUMBLE_SUPERUSER_PASSWORD=${MUMBLE_SUPERUSER_PASSWORD} + - MUMBLE_CONFIG_ice="tcp -h 127.0.0.1 -p 6502" + - MUMBLE_CONFIG_icesecretwrite=${MUMBLE_ICESECRETWRITE} + - MUMBLE_CONFIG_serverpassword=${MUMBLE_SERVERPASSWORD} + - MUMBLE_CONFIG_opusthreshold=0 + - MUMBLE_CONFIG_suggestPushToTalk=true + - MUMBLE_CONFIG_suggestVersion=1.4.0 + ports: + - 64738:64738 + - 64738:64738/udp + logging: + driver: "json-file" + options: + max-size: "10Mb" + max-file: "5" + + mumble-authenticator: + build + context: . + dockerfile: ./mumble-authenticator/Dockerfile + restart: always + volumes: + - ./mumble-authenticator/authenticator.py:/authenticator.py + - ./mumble-authenticator/authenticator.ini.docker:/authenticator.ini + environment: + - MUMBLE_SUPERUSER_PASSWORD=${MUMBLE_SUPERUSER_PASSWORD} + - MUMBLE_CONFIG_ice="tcp -h 127.0.0.1 -p 6502" + - MUMBLE_CONFIG_icesecretwrite=${MUMBLE_ICESECRETWRITE} + - MUMBLE_CONFIG_serverpassword=${MUMBLE_SERVERPASSWORD} + depends_on: + - mumble-server + - auth_mysql + logging: + driver: "json-file" + options: + max-size: "10Mb" + max-file: "5" +``` + +## Permissions + +To use this service, users will require some of the following. + +```{eval-rst} ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| Permission | Admin Site | Auth Site | ++=======================================+==================+==========================================================================+ +| mumble.access_mumble | None | Can Access the Mumble Service | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +``` + +## ACL configuration + +On a freshly installed mumble server only your superuser has the right to configure ACLs and create channels. The credentials for logging in with your superuser are: + +- user: `SuperUser` +- password: *what you defined when configuring your mumble server* + +## Optimizing a Mumble Server + +The needs and available resources will vary between Alliance Auth installations. Consider yours when applying these settings. + +### Bandwidth + + +This is likely the most important setting for scaling a Mumble install, The default maximum Bandwidth is 72000bps Per User. Reducing this value will cause your clients to automatically scale back their bandwidth transmitted, while causing a reduction in voice quality. A value thats still high may cause robotic voices or users with bad connections to drop due entirely due to network load. + +Please tune this value to your individual needs, the below scale may provide a rough starting point. +72000 - Superior voice quality - Less than 50 users. +54000 - No noticeable reduction in quality - 50+ Users or many channels with active audio. +36000 - Mild reduction in quality - 100+ Users +30000 - Noticeable reduction in quality but not function - 250+ Users + +### Forcing Opus + + +A Mumble server by default, will fall back to the older CELT codec as soon as a single user connects with an old client. This will significantly reduce your audio quality and likely place higher load on your server. We *highly* reccommend setting this to Zero, to force OPUS to be used at all times. Be aware any users with Mumble clients prior to 1.2.4 (From 2013...) Will not hear any audio. + +Our default config sets this as follows + +```docker + mumble-authenticator: + environment: + `MUMBLE_CONFIG_opusthreshold=0` +``` + +### AutoBan and Rate Limiting + + +The AutoBan feature has some sensible settings by default, You may wish to tune these if your users keep locking themselves out by opening two clients by mistake, or if you are receiving unwanted attention + + +This too, is set to a sensible configuration by default. Take note on upgrading older installs, as this may actually be set too restrictively and will rate-limit your admins accidentally, take note of the configuration in + +```docker + mumble-authenticator: + environment: + MUMBLE_CONFIG_messagelimit= + MUMBLE_CONFIG_messageburst= + MUMBLE_CONFIG_autobanAttempts=10 + MUMBLE_CONFIG_autobanTimeframe=120 + MUMBLE_CONFIG_autobanTime=30 + MUMBLE_CONFIG_autobanSuccessfulConnections=false +``` + +### "Suggest" Options + +There is no way to force your users to update their clients or use Push to Talk, but these options will throw an error into their Mumble Client. + + + +We suggest using Mumble 1.4.0+ for your server and Clients, you can tune this to the latest Patch version. +If Push to Talk is to your tastes, configure the suggestion as follows + +```docker + mumble-authenticator: + environment: + MUMBLE_CONFIG_suggestVersion=s1.4.287 + MUMBLE_CONFIG_suggestPushToTalk=true + +``` + +## General notes + +### Server password + +With the default Mumble configuration your mumble server is public. Meaning that everyone who has the address can at least connect to it and might also be able join all channels that don't have any permissions set (Depending on your ACL configured for the root channel). + +We have changed this behaviour by setting a Server Password by default, to change this password modify `MUMBLE_SERVERPASSWORD` in `.env`. + +Restart the container to apply the change. + +```shell +docker compose restart mumble-server +``` + +It is not reccommended to share/use this password, instead use the Mumble Authenticator whenever possible. + +As only registered member can join your mumble server. If you still want to allow guests to join you have 2 options. + +- Allow the "Guest" state to activate the Mumble service in your Auth instance +- Use [Mumble temporary links](https://github.com/pvyParts/allianceauth-mumble-temp) + +### Enabling Avatars in Overlay (V1.0.0+) + +Ensure you have an up to date Mumble-Authenticator, this feature was added in V1.0.0 + +Edit `authenticator.ini` and change (or add for older installs) This code block. + +```ini +;If enabled, textures are automatically set as player's EvE avatar for use on overlay. +avatar_enable = True +;Get EvE avatar images from this location. {charid} will be filled in. +ccp_avatar_url = https://images.evetech.net/characters/{charid}/portrait?size=32 +``` diff --git a/docs/features/services/mumble.md b/docs/features/services/mumble.md index 30ca32e0..fb3180bc 100644 --- a/docs/features/services/mumble.md +++ b/docs/features/services/mumble.md @@ -9,7 +9,8 @@ Note that this guide assumes that you have installed Auth with the official :doc :::{warning} This guide is currently for Ubuntu only. ::: -## Installations + +## Bare Metal Installations ### Installing Mumble Server @@ -35,7 +36,6 @@ sudo apt-get install python-software-properties mumble-server libqt5sql5-mysql ::: :::: - ### Installing Mumble Authenticator Next, we need to download the latest authenticator release from the [authenticator repository](https://gitlab.com/allianceauth/mumble-authenticator). @@ -236,7 +236,7 @@ Please tune this value to your individual needs, the below scale may provide a r ### Forcing Opus -A Mumble server by default, will fall back to the older CELT codec as soon as a single user connects with an old client. This will significantly reduce your audio quality and likely place higher load on your server. We _highly_ reccommend setting this to Zero, to force OPUS to be used at all times. Be aware any users with Mumble clients prior to 1.2.4 (From 2013...) Will not hear any audio. +A Mumble server by default, will fall back to the older CELT codec as soon as a single user connects with an old client. This will significantly reduce your audio quality and likely place higher load on your server. We *highly* reccommend setting this to Zero, to force OPUS to be used at all times. Be aware any users with Mumble clients prior to 1.2.4 (From 2013...) Will not hear any audio. `opusthreshold=0` @@ -255,7 +255,7 @@ There is no way to force your users to update their clients or use Push to Talk, We suggest using Mumble 1.4.0+ for your server and Clients, you can tune this to the latest Patch version. -`suggestVersion=1.4.230` +`suggestVersion=1.4.287` If Push to Talk is to your tastes, configure the suggestion as follows `suggestPushToTalk=true` diff --git a/docs/features/services/openfire-docker.md b/docs/features/services/openfire-docker.md new file mode 100644 index 00000000..f01b7efa --- /dev/null +++ b/docs/features/services/openfire-docker.md @@ -0,0 +1,180 @@ +# Openfire + +An alternate install guide for Openfire using Docker, better suited to an Alliance Auth Docker install + +Openfire is a Jabber (XMPP) server. + +## Configuring Auth + +In your auth project's settings file (`aa-docker/conf/local.py`), do the following: + +- Add `'allianceauth.services.modules.openfire',` to your `INSTALLED_APPS` list +- Append the following to your auth project's settings file: + +```python +# Jabber Configuration +JABBER_URL = SITE_URL +JABBER_PORT = os.environ.get('JABBER_PORT', 5223) +JABBER_SERVER = SITE_URL +OPENFIRE_ADDRESS = SITE_URL +OPENFIRE_SECRET_KEY = os.environ.get('OPENFIRE_SECRET_KEY', '') +BROADCAST_USER = "" +BROADCAST_USER_PASSWORD = os.environ.get('BROADCAST_USER_PASSWORD', '127.0.0.1') +BROADCAST_SERVICE_NAME = "broadcast" +``` + +Add the following lines to your `.env` file + +```env +# Openfire +OPENFIRE_SECRET_KEY = superuser_password +BROADCAST_USER_PASSWORD = icesecretwrite + +``` + +Finally, restart your stack and run migrations + +```shell +docker compose --env-file=.env up -d +docker compose exec allianceauth_gunicorn bash +auth migrate +``` + +## Docker Installation + +Add the following to your `docker-compose.yml` under the `services:` section + +```docker + openfire: + image: nasqueron/openfire:4.7.5 + ports: + - "5222:5222/tcp" + - "5223:5223/tcp" + - "7777:7777/tcp" + volumes: + - openfire-data:/var/lib/openfire + depends_on: + - auth_mysql + logging: + driver: "json-file" + options: + max-size: "50Mb" + max-file: "5" +``` + +### Create Database + +We have a Mariadb container already as part of the Alliance Auth stack, enter it and create a database for it. + +```shell +docker exec -it auth_mysql +mysql -u root -p $AA_DB_ROOT_PASSWORD +``` + +```sql +create database alliance_jabber; +grant all privileges on alliance_jabber . * to 'aauth'@'localhost'; +exit; +exit +``` + +### Configure Webserver + +In Nginx Proxy Manager `http://yourdomain:81/`, go to `Proxy Hosts`, Click `Add Proxy Host`. You can refer to :doc:`/installation-containerized/docker` + +Domain Name: `jabber.yourdomain` +Forward Hostname `openfire` +forward port `9090` for http, `9091` for https + +### Web Configuration + +The remainder of the setup occurs through Openfire’s web interface. Navigate to + +Select your language, our guide will assume English + +Under Server Settings, set the Domain to `jabber.yourdomain.com` replacing it with your actual domain. Don’t touch the rest. + +Under Database Settings, select `Standard Database Connection` + +On the next page, select `MySQL` from the dropdown list and change the following: + +- `[server]`: `auth_mysql` +- `[database]`: `alliance_jabber` +- `[user]`: `aauth` +- `[password]: Your database users password + +If Openfire returns with a failed to connect error, re-check these settings. Note the lack of square brackets. + +Under Profile Settings, leave `Default` selected. + +Create an administrator account. The actual name is irrelevant, just don’t lose this login information. + +Finally, log in to the console with your admin account. + +Edit your auth project's settings file (`aa-docker/conf/local.py`) and enter the values you just set: + +- `JABBER_URL` is the pubic address of your jabber server +- `JABBER_PORT` is the port for clients to connect to (usually 5223) +- `JABBER_SERVER` is the name of the jabber server. If you didn't alter it during install it'll usually be your domain (eg `jabber.example.com`) +- `OPENFIRE_ADDRESS` is the web address of Openfire's web interface. Use http:// with port 9090 or https:// with port 9091 if you configure SSL in Openfire and Nginx Proxy Manager + +### REST API Setup + +Navigate to the `plugins` tab, and then `Available Plugins` on the left navigation bar. You’ll need to fetch the list of available plugins by clicking the link. + +Once loaded, press the green plus on the right for `REST API`. + +Navigate the `Server` tab, `Sever Settings` subtab. At the bottom of the left navigation bar select `REST API`. + +Select `Enabled`, and `Secret Key Auth`. Update your auth project's settings with this secret key as `OPENFIRE_SECRET_KEY`. + +### Broadcast Plugin Setup + +Navigate to the `Users/Groups` tab and select `Create New User` from the left navigation bar. + +Pick a username (e.g. `broadcast`) and password for your ping user. Enter these in your auth project's settings file as `BROADCAST_USER` and `BROADCAST_USER_PASSWORD`. Note that `BROADCAST_USER` needs to be in the format `user@example.com` matching your jabber server name. Press `Create User` to save this user. + +Broadcasting requires a plugin. Navigate to the `plugins` tab, press the green plus for the `Broadcast` plugin. + +Navigate to the `Server` tab, `Server Manager` subtab, and select `System Properties`. Enter the following: + +- Name: `plugin.broadcast.disableGroupPermissions` + - Value: `True` + - Do not encrypt this property value +- Name: `plugin.broadcast.allowedUsers` + - Value: `broadcast@example.com`, replacing the domain name with yours + - Do not encrypt this property value + +If you have troubles getting broadcasts to work, you can try setting the optional (you will need to add it) `BROADCAST_IGNORE_INVALID_CERT` setting to `True`. This will allow invalid certificates to be used when connecting to the Openfire server to send a broadcast. + +### Preparing Auth + +Once all settings are entered, run migrations and restart Gunicorn and Celery. + +### Group Chat + +Channels are available which function like a chat room. Access can be controlled either by password or ACL (not unlike mumble). + +Navigate to the `Group Chat` tab and select `Create New Room` from the left navigation bar. + +- Room ID is a short, easy-to-type version of the room’s name users will connect to +- Room Name is the full name for the room +- Description is short text describing the room’s purpose +- Set a password if you want password authentication +- Every other setting is optional. Save changes. + +Now select your new room. On the left navigation bar, select `Permissions`. + +ACL is achieved by assigning groups to each of the three tiers: `Owners`, `Admins` and `Members`. `Outcast` is the blacklist. You’ll usually only be assigning groups to the `Member` category. + +## Permissions + +To use this service, users will require some of the following. + +```{eval-rst} ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| Permission | Admin Site | Auth Site | ++=======================================+==================+==========================================================================+ +| openfire.access_openfire | None | Can Access the Openfire Service | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +``` diff --git a/docs/features/services/teamspeak3-docker.md b/docs/features/services/teamspeak3-docker.md new file mode 100644 index 00000000..4bccdfcd --- /dev/null +++ b/docs/features/services/teamspeak3-docker.md @@ -0,0 +1,179 @@ +# TeamSpeak 3 + +## Overview + +TeamSpeak3 is the most popular VOIP program for gamers. + +But have you considered using Mumble? Not only is it free, but it has features and performance far superior to Teamspeak3. + +## Setup + +Sticking with TS3? Alright, I tried. + +## Configuring Auth + +In your auth project's settings file (`aa-docker/conf/local.py`), do the following: + +- Add `'allianceauth.services.modules.teamspeak',` to your `INSTALLED_APPS` list +- Append the following to your auth project's settings file: + +```python +# Teamspeak3 Configuration +TEAMSPEAK3_SERVER_IP = os.environ.get('TEAMSPEAK3_SERVER_IP', '127.0.0.1') +TEAMSPEAK3_SERVER_PORT = os.environ.get('TEAMSPEAK3_SERVER_PORT', 10011) +TEAMSPEAK3_SERVERQUERY_USER = os.environ.get('TEAMSPEAK3_SERVERQUERY_USER', "serverquery") +TEAMSPEAK3_SERVERQUERY_PASSWORD = os.environ.get('TEAMSPEAK3_SERVERQUERY_PASSWORD', "") +TEAMSPEAK3_VIRTUAL_SERVER = os.environ.get('TEAMSPEAK3_VIRTUAL_SERVER', 1) +TEAMSPEAK3_PUBLIC_URL = SITE_URL + +CELERYBEAT_SCHEDULE['run_ts3_group_update'] = { + 'task': 'allianceauth.services.modules.teamspeak3.tasks.run_ts3_group_update'," + 'schedule': crontab(minute='*/30'), +} +``` + +Add the following lines to your `.env` file + +```env +# Temspeak +TEAMSPEAK3_SERVERQUERY_USER = "serverquery" +TEAMSPEAK3_SERVERQUERY_PASSWORD = "" +``` + +## Docker Installation + +Add the following to your `docker-compose.yml` under the `services:` section + +```docker + teamspeak: + image: teamspeak:3.13 + restart: always + environment: + TS3SERVER_LICENSE: accept + ports: + - 9987:9987/udp + - 30033:30033 + volumes: + - teamspeak-data:/var/ts3server/ + logging: + driver: "json-file" + options: + max-size: "10Mb" + max-file: "5" +``` + +### Update Settings + +In (`aa-docker/conf/local.py`), update the following + +- `TEAMSPEAK_VIRTUAL_SERVER` is the virtual server ID of the server to be managed - it will only ever not be 1 if your server is hosted by a professional company +- `TEAMSPEAK3_PUBLIC_URL` is the public address of your TeamSpeak server. Do not include any leading http:// or teamspeak:// + +In your `.env` file, update the following, obtained from the logs of the Teamspeak server initaliztion `docker compose logs teamspeak` + +- `TEAMSPEAK3_SERVERQUERY_USER` is `loginname` from the above bash command (usually `serveradmin`) +- `TEAMSPEAK3_SERVERQUERY_PASSWORD` is `password` following the equals in `serveradmin_password=` + +Once settings are entered, run migrations and restart your stack + +```shell +docker compose --env-file=.env up -d +docker compose exec allianceauth_gunicorn bash +auth migrate +``` + +### Generate User Account + +And now we can generate ourselves a user account. Navigate to the services in Alliance Auth for your user account and press the checkmark for TeamSpeak 3. + +Click the URL provided to automatically connect to our server. It will prompt you to redeem the serveradmin token, enter the `token` from startup. + +### Groups + +Now we need to make groups. AllianceAuth handles groups in teamspeak differently: instead of creating groups it creates an association between groups in TeamSpeak and groups in AllianceAuth. Go ahead and make the groups you want to associate with auth groups, keeping in mind multiple TeamSpeak groups can be associated with a single auth group. + +Navigate back to the AllianceAuth admin interface (example.com/admin) and under `Teamspeak3`, select `Auth / TS Groups`. + +In the top-right corner click, first click on `Update TS3 Groups` to fetch the newly created server groups from TS3 (this may take a minute to complete). Then click on `Add Auth / TS Group` to link Auth groups with TS3 server groups. + +The dropdown box provides all auth groups. Select one and assign TeamSpeak groups from the panels below. If these panels are empty, wait a minute for the database update to run, or see the [troubleshooting section](#ts-group-models-not-populating-on-admin-site) below. + +## Troubleshooting + +### `Insufficient client permissions (failed on Invalid permission: 0x26)` + +Using the advanced permissions editor, ensure the `Guest` group has the permission `Use Privilege Keys to gain permissions` (under `Virtual Server` expand the `Administration` section) + +To enable advanced permissions, on your client go to the `Tools` menu, `Application`, and under the `Misc` section, tick `Advanced permission system` + +### TS group models not populating on admin site + +The method which populates these runs every 30 minutes. To populate manually you start the process from the admin site or from the Django shell. + +#### Admin Site + +Navigate to the AllianceAuth admin interface and under `Teamspeak3`, select `Auth / TS Groups`. + +Then, in the top-right corner click, click on `Update TS3 Groups` to start the process of fetching the server groups from TS3 (this may take a minute to complete). + +#### Django Shell + +Start a django shell with: + +```shell +docker compose exec allianceauth_gunicorn bash +auth shell +``` + +And execute the update as follows: + +```python +from allianceauth.services.modules.teamspeak3.tasks import Teamspeak3Tasks +Teamspeak3Tasks.run_ts3_group_update() +``` + +Ensure that command does not return an error. + +### `2564 access to default group is forbidden` + +This usually occurs because auth is trying to remove a user from the `Guest` group (group ID 8). The guest group is only assigned to a user when they have no other groups, unless you have changed the default teamspeak server config. + +Teamspeak servers v3.0.13 and up are especially susceptible to this. Ensure the Channel Admin Group is not set to `Guest (8)`. Check by right clicking on the server name, `Edit virtual server`, and in the middle of the panel select the `Misc` tab. + +### `TypeError: string indices must be integers, not str` + +This error generally means teamspeak returned an error message that went unhandled. The full traceback is required for proper debugging, which the logs do not record. Please check the superuser notifications for this record and get in touch with a developer. + +### `3331 flood ban` + +This most commonly happens when your teamspeak server is externally hosted. You need to add the auth server IP to the teamspeak serverquery whitelist. This varies by provider. + +If you have SSH access to the server hosting it, you need to locate the teamspeak server folder and add the auth server IP on a new line in `query_ip_allowlist.txt` (named `query_ip_whitelist.txt` on older teamspeak versions). + +### `520 invalid loginname or password` + +The serverquery account login specified in local.py is incorrect. Please verify `TEAMSPEAK3_SERVERQUERY_USER` and `TEAMSPEAK3_SERVERQUERY_PASSWORD`. The [installation section](#update-settings) describes where to get them. + +### `2568 insufficient client permissions` + +This usually occurs if you've created a separate serverquery user to use with auth. It has not been assigned sufficient permissions to complete all the tasks required of it. The full list of required permissions is not known, so assign liberally. + +## Permissions + +To use and configure this service, users will require some of the following. + +```{eval-rst} ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| Permission | Admin Site | Auth Site | ++=======================================+==================+==========================================================================+ +| teamspeak.access_teamspeak | None | Can Access the TeamSpeak Service | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| teamspeak.add_authts | Can Add Model | None | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| teamspeak.change_authts | Can Change Model | None | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| teamspeak.delete_authts | Can Delete Model | None | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +| teamspeak.view_authts | Can View Model | None | ++---------------------------------------+------------------+--------------------------------------------------------------------------+ +``` From 9f4bf13cc9c136a9d62a209735c91f91be8f4061 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 5 Jan 2024 15:42:39 +1000 Subject: [PATCH 06/14] Expand documentation on building a custom image, provide example --- docs/installation-containerized/docker.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/installation-containerized/docker.md b/docs/installation-containerized/docker.md index d75ee3cb..74372c36 100644 --- a/docs/installation-containerized/docker.md +++ b/docs/installation-containerized/docker.md @@ -28,7 +28,7 @@ If at any point `docker compose` does not work, but `docker-compose` does, you h 1. click "Add Proxy Host", with the following settings for auth. The example uses `auth.localhost` for the domain, but you'll want to use whatever address you have auth configured on ![nginx-host](/_static/images/installation/docker/nginx-host.png) 1. click "Add Proxy Host", with the following settings for grafana. The example uses `grafana.localhost` for the domain - ![grafana-host](/_static/images/installation/docker/grafana-host.png)) + ![grafana-host](/_static/images/installation/docker/grafana-host.png) Congrats! You should now see auth running at and grafana at ! @@ -59,7 +59,23 @@ There are a handful of ways to add packages: Using a custom docker image is the preferred approach, as it gives you the stability of packages only changing when you tell them to, along with packages not having to be downloaded every time your container restarts 1. Add each additional package that you want to install to a single line in `conf/requirements.txt`. It is recommended, but not required, that you include a version number as well. This will keep your packages from magically updating. You can lookup packages on , and copy everything after `pip install` from the top of the page to use the most recent version. It should look something like `allianceauth-signal-pings==0.0.7`. Every entry in this file should be on a separate line -1. In `docker compose.yml`, comment out the `image` line under `allianceauth` (line 36... ish) and uncomment the `build` section +1. Modify `docker-compose.yml`, as follows. + * Comment out the `image` line under `allianceauth` + * Uncomment the `build` section + * e.g. + + ```docker + x-allianceauth-base: &allianceauth-base + # image: ${AA_DOCKER_TAG?err} + build: + context: . + dockerfile: custom.dockerfile + args: + AA_DOCKER_TAG: ${AA_DOCKER_TAG?err} + restart: always + ... + ``` + 1. run `docker compose --env-file=.env up -d`, your custom container will be built, and auth will have your new packages. Make sure to follow the package's instructions on config values that go in `local.py` 1. run `docker compose exec allianceauth_gunicorn bash` to open up a terminal inside your auth container 1. run `allianceauth update myauth` From 65d77743dcce38277c58fb5fa0c5bd0dcda2f149 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 20:37:06 +1000 Subject: [PATCH 07/14] fix toctree after myst conversion --- docs/maintenance/tuning/index.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/maintenance/tuning/index.md b/docs/maintenance/tuning/index.md index b773cbeb..157151c7 100644 --- a/docs/maintenance/tuning/index.md +++ b/docs/maintenance/tuning/index.md @@ -8,10 +8,9 @@ Tuning usually has benefits and costs and should only be performed by experience :::{toctree} :maxdepth: 1 - - gunicorn - celery - redis - python - sql -``` +gunicorn +celery +redis +python +sql +::: From da2a5aff2f7cc0fcf91d4db220d3d1cfe61d5453 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 20:37:18 +1000 Subject: [PATCH 08/14] missing ` --- docs/features/services/openfire-docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/services/openfire-docker.md b/docs/features/services/openfire-docker.md index f01b7efa..f2ecc217 100644 --- a/docs/features/services/openfire-docker.md +++ b/docs/features/services/openfire-docker.md @@ -101,7 +101,7 @@ On the next page, select `MySQL` from the dropdown list and change the following - `[server]`: `auth_mysql` - `[database]`: `alliance_jabber` - `[user]`: `aauth` -- `[password]: Your database users password +- `[password]`: Your database users password If Openfire returns with a failed to connect error, re-check these settings. Note the lack of square brackets. From 87b9e3f87af8326354bab9b6dd815d415ca74829 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 20:37:41 +1000 Subject: [PATCH 09/14] use latest python minor --- docs/installation/allianceauth.md | 18 +++++++++--------- docs/installation/upgrade_python.md | 20 ++++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/installation/allianceauth.md b/docs/installation/allianceauth.md index 1e93297f..785cce6d 100644 --- a/docs/installation/allianceauth.md +++ b/docs/installation/allianceauth.md @@ -85,9 +85,9 @@ We need to build Python from source ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` @@ -99,9 +99,9 @@ We need to build Python from source ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` @@ -113,9 +113,9 @@ We need to build Python from source ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` diff --git a/docs/installation/upgrade_python.md b/docs/installation/upgrade_python.md index 50e7bb29..03ce224d 100644 --- a/docs/installation/upgrade_python.md +++ b/docs/installation/upgrade_python.md @@ -15,7 +15,7 @@ To run AA with a newer Python 3 version than your system's default you need to i To install other Python versions than those included with your distribution, you need to add a new installation repository. Then you can install the specific Python 3 to your system. :::{note} - Ubuntu 2204 ships with Python 3.10 already +Ubuntu 2204 ships with Python 3.10 already ::: Centos Stream 8/9: @@ -39,9 +39,9 @@ sudo apt-get install python3.11 python3.11-dev python3.11-venv ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` @@ -52,9 +52,9 @@ sudo make altinstall ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` @@ -65,9 +65,9 @@ sudo make altinstall ```bash cd ~ sudo yum install gcc openssl-devel bzip2-devel libffi-devel wget -wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz -tar xvf Python-3.11.5.tgz -cd Python-3.11.5/ +wget https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz +tar xvf Python-3.11.7.tgz +cd Python-3.11.7/ ./configure --enable-optimizations --enable-shared sudo make altinstall ``` From 677c46c48a92e364e88cfaa55fd8906f52a78231 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 22:23:12 +1000 Subject: [PATCH 10/14] very basic migration guide to our v4 docker stack --- docs/installation/v4_docker_migration.md | 96 ++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docs/installation/v4_docker_migration.md diff --git a/docs/installation/v4_docker_migration.md b/docs/installation/v4_docker_migration.md new file mode 100644 index 00000000..91505e94 --- /dev/null +++ b/docs/installation/v4_docker_migration.md @@ -0,0 +1,96 @@ +# Migrating your Docker Compose stack from AA V3.x to AA v4.x + +Our Docker Compose stack has both changed significantly, and simplified itself drastically depending on your level of familiarity with Docker. + +We have Removed our need to run Supervisor inside the container to run the various tasks needed, and split the stack into multiple containers responsible for each task, as well as modernized many elements. + +## aa-docker/conf/* + +We are bundling a few often customized files along side our AA install for easier modification by users, you will need to download these into aa-docker/conf + +```shell +wget https://gitlab.com/allianceauth/allianceauth/-/raw/v4.x/docker/conf/celery.py +wget https://gitlab.com/allianceauth/allianceauth/-/raw/v4.x/docker/conf/urls.py +wget https://gitlab.com/allianceauth/allianceauth/-/raw/v4.x/docker/conf/memory_check.sh +wget https://gitlab.com/allianceauth/allianceauth/-/raw/v4.x/docker/conf/redis_healthcheck.sh +``` + +## Docker Compose + +At this point you should take a copy of your docker-compose and take note of any additional volumes or configurations you have, and why. + +Take a complete backup of your local.py, docker-compose and SQL database. + +`docker compose down` + +Replace your conf/nginx.conf with the contents of + +Replace your docker-compose.yml with the contents of + +V3.x installs likely used a dedicated database for Nginx Proxy Manager, you can either setup NPM again without a database, or uncomment the sections noted to maintain this configuration + +```docker-compose + proxy: + ... + # Uncomment this section to use a dedicated database for Nginx Proxy Manager + environment: + DB_MYSQL_HOST: "proxy-db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "npm" + DB_MYSQL_PASSWORD: "${PROXY_MYSQL_PASS?err}" + DB_MYSQL_NAME: "npm" + ... + # Uncomment this section to use a dedicated database for Nginx Proxy Manager + proxy-db: + image: 'jc21/mariadb-aria:latest' + restart: always + environment: + MYSQL_ROOT_PASSWORD: "${PROXY_MYSQL_PASS_ROOT?err}" + MYSQL_DATABASE: 'npm' + MYSQL_USER: 'npm' + MYSQL_PASSWORD: "${PROXY_MYSQL_PASS?err}" + ports: + - 3306 + volumes: + - proxy-db:/var/lib/mysql + logging: + driver: "json-file" + options: + max-size: "1Mb" + max-file: "5" +``` + +## .env + +You will need to add some entries to your .env file + +```env +AA_DB_CHARSET=utf8mb4 +GF_SECURITY_ADMIN_USERNAME=admin +``` + +and +`GF_SECURITY_ADMIN_PASSWORD` + +The password field is intentionally not filled so that you create one. You can either use the grafana credentials you have been using, or create a suitably secure password now. + +You will also need to update the `AA_DOCKER_TAG` to the version of V4.x you want to install. Either follow the pattern or check + +## (Optional) Build Custom Container + +If you are using a docker container with a requirements.txt, build one for v4.x as follows + +```shell +docker compose pull +docker compose build +``` + +## Bring docker back up, migrate, collect static + +```shell +docker compose --env-file=.env up -d + +docker compose exec allianceauth_gunicorn bash +auth migrate +auth collectstatic +``` From 7427e135055023a7c64341f335fd2de894762e2c Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 23:21:09 +1000 Subject: [PATCH 11/14] move into docker and add to toctree --- docs/installation-containerized/index.md | 2 ++ .../v4_docker_migration.md | 0 2 files changed, 2 insertions(+) rename docs/{installation => installation-containerized}/v4_docker_migration.md (100%) diff --git a/docs/installation-containerized/index.md b/docs/installation-containerized/index.md index 326b6162..93f5b854 100644 --- a/docs/installation-containerized/index.md +++ b/docs/installation-containerized/index.md @@ -10,5 +10,7 @@ There are additional installation steps for activating services and apps that co :::{toctree} :maxdepth: 1 + docker +v4_docker_migration ::: diff --git a/docs/installation/v4_docker_migration.md b/docs/installation-containerized/v4_docker_migration.md similarity index 100% rename from docs/installation/v4_docker_migration.md rename to docs/installation-containerized/v4_docker_migration.md From f4d8ead54e6fd4338032ade0a7ff004221a5af7e Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Fri, 23 Feb 2024 23:25:20 +1000 Subject: [PATCH 12/14] remove justified text --- docs/_static/css/rtd_dark.css | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/docs/_static/css/rtd_dark.css b/docs/_static/css/rtd_dark.css index 0a8e9840..094082a8 100644 --- a/docs/_static/css/rtd_dark.css +++ b/docs/_static/css/rtd_dark.css @@ -24,8 +24,13 @@ color: aliceblue; } - .method dt, .class dt, .data dt, .attribute dt, .function dt, - .descclassname, .descname { + .method dt, + .class dt, + .data dt, + .attribute dt, + .function dt, + .descclassname, + .descname { background-color: #525252 !important; color: white !important; } @@ -51,11 +56,13 @@ background-color: #2b2b2b !important; } - .xref, .py-meth { + .xref, + .py-meth { color: #7ec3e6 !important; } - .admonition, .note { + .admonition, + .note { background-color: #2d2d2d !important; } @@ -64,19 +71,27 @@ border-bottom: 1px solid #fcfcfc; } - .wy-table thead, .rst-content table.docutils thead, .rst-content table.field-list thead { + .wy-table thead, + .rst-content table.docutils thead, + .rst-content table.field-list thead { background-color: #b9b9b9; } - .wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th { + .wy-table thead th, + .rst-content table.docutils thead th, + .rst-content table.field-list thead th { border: solid 2px #e1e4e5; } - .wy-table thead p, .rst-content table.docutils thead p, .rst-content table.field-list thead p { + .wy-table thead p, + .rst-content table.docutils thead p, + .rst-content table.field-list thead p { margin: 0; } - .wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + .wy-table-odd td, + .wy-table-striped tr:nth-child(2n-1) td, + .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { background-color: #343131; } @@ -91,10 +106,6 @@ /* Name.Variable */ - body { - text-align: justify; - } - .rst-content .section .admonition ul { margin-bottom: 0; } From d6372bd0933d9774ec9e206794c8a094969611ab Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Sat, 24 Feb 2024 16:05:50 +1000 Subject: [PATCH 13/14] add notes to building custom image --- .../v4_docker_migration.md | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/docs/installation-containerized/v4_docker_migration.md b/docs/installation-containerized/v4_docker_migration.md index 91505e94..3d210fe6 100644 --- a/docs/installation-containerized/v4_docker_migration.md +++ b/docs/installation-containerized/v4_docker_migration.md @@ -78,7 +78,27 @@ You will also need to update the `AA_DOCKER_TAG` to the version of V4.x you want ## (Optional) Build Custom Container -If you are using a docker container with a requirements.txt, build one for v4.x as follows +If you are using a docker container with a requirements.txt, You will need to reinstate some customizations. + +Modify `docker-compose.yml`, as follows. + +* Comment out the `image` line under `allianceauth` +* Uncomment the `build` section +* e.g. + + ```docker + x-allianceauth-base: &allianceauth-base + # image: ${AA_DOCKER_TAG?err} + build: + context: . + dockerfile: custom.dockerfile + args: + AA_DOCKER_TAG: ${AA_DOCKER_TAG?err} + restart: always + ... + ``` + +Now build your custom image ```shell docker compose pull @@ -88,9 +108,9 @@ docker compose build ## Bring docker back up, migrate, collect static ```shell -docker compose --env-file=.env up -d +docker compose --env-file=.env up -d --remove-orphans docker compose exec allianceauth_gunicorn bash auth migrate -auth collectstatic +auth collectstatic --clear ``` From 12f1444fe77fcb6679ec68a78b4c1a3eff8be2a7 Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Sat, 24 Feb 2024 20:41:10 +1000 Subject: [PATCH 14/14] add update command --- docs/installation-containerized/v4_docker_migration.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation-containerized/v4_docker_migration.md b/docs/installation-containerized/v4_docker_migration.md index 3d210fe6..18cd0784 100644 --- a/docs/installation-containerized/v4_docker_migration.md +++ b/docs/installation-containerized/v4_docker_migration.md @@ -111,6 +111,8 @@ docker compose build docker compose --env-file=.env up -d --remove-orphans docker compose exec allianceauth_gunicorn bash + +allianceauth update myauth auth migrate auth collectstatic --clear ```