trashposs/docs/docker-compose-install.md
2024-04-28 12:19:17 +02:00

3.4 KiB

Installing TrashPoss with Docker

This guide is based on docker compose/Docker Compose v2, but docker-compose/Docker Compose v1 should work as well. Docker 20.10+ is required for building your own images because of BuildKit usage, and Docker 20.10 users need to enable BuildKit first, or upgrade to latest Docker.

Preparations

Getting needed files

If you want to use the prebuilt images:

GIT_LFS_SKIP_SMUDGE=1 git clone https://iceshrimp.dev/Crimekillz/trashposs.git --depth=1

If you want to build your own images (make sure to install git-lfs and to run git lfs install before running the command):

git clone https://iceshrimp.dev/Crimekillz/trashposs.git

docker-compose.yml

First, run cp docs/examples/docker-compose.yml docker-compose.yml, and edit docker-compose.yml if you want to build the image yourself or choose a different tag

.config

Run cp .config/docker_example.env .config/docker.env, and edit .config/docker.env and fill it with the database credentials you want.
Run cp .config/example-docker.yml .config/default.yml, and edit .config/default.yml

  • Replace example database credentials with the ones you entered in .config/docker.env
  • Change other configuration

If you are running TrashPoss on a system with more than one CPU thread, you might want to set the clusterLimit config option to about half of your thread count, depending on your system configuration. Please note that each worker requires around 10 PostgreSQL connections, so be sure to set max_connections appropriately. To do this with docker-compose, add args: ["-c", "max_connections=n"] to the db: section of docker-compose.yml, with n being (10 * no_workers) + 10.

Installation and first start

Choose a method, whether you chose to build the image yourself or not.
Note: Ctrl-C will shut down TrashPoss gracefully.

Pulling the image

docker compose pull
docker compose up

Building the image

Depending on your machine specs, this can take well over 30 minutes

docker compose build
docker compose up

Starting TrashPoss automatically

Run docker compose up -d and TrashPoss will start automatically on boot.

Updating TrashPoss

Pulling the image

docker compose pull
docker compose down
docker compose up -d

Building the image

## Run git stash commands only if you have uncommitted changes
git stash
git pull
git stash pop
docker compose build
docker compose down
docker compose up -d

Post-install

See post-install.

Troubleshooting

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition.

If you see a warning like this, you have to enable overcommit on your host machine (outside docker, since /proc is read-only for redis). Solution

echo "vm.overcommit_memory = 1" | sudo tee /etc/sysctl.d/trashposs-memory-overcommit.conf should be set, to enable Memory overcommit on reboot, change will apply after reboot or see the line below how to activate it temporary without reboot
sysctl "vm.overcommit_memory=1" enables Memory overcommit on-the-fly, you can then start TrashPoss with "docker-compose up -d"