Skip to content

Docker Compose and PostgreSQL

The panel image is published as ghcr.io/aaasazan/gowave for linux/amd64 and linux/arm64.

Run the commands below as root. If unofficial Docker packages or a conflicting containerd/runc are installed, remove the conflicting packages as described in the instructions for your distribution.

Add Docker’s signing key and APT repository, then install Engine and the Compose plugin. The commands use ID and the release codename from /etc/os-release and are intended for Debian and Ubuntu:

Окно терминала
apt update
apt install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
. /etc/os-release
curl -fsSL "https://download.docker.com/linux/${ID}/gpg" -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/${ID}
Suites: ${UBUNTU_CODENAME:-$VERSION_CODENAME}
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Official instructions: Debian, Ubuntu.

For RHEL 8/9/10, add Docker’s DNF repository and install the packages:

Окно терминала
dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

For CentOS Stream and compatible distributions such as AlmaLinux and Rocky Linux, replace linux/rhel/docker-ce.repo with linux/centos/docker-ce.repo in the repository command. Official instructions: RHEL, CentOS.

For either package manager:

Окно терминала
systemctl enable --now docker
docker run --rm hello-world
docker compose version
Окно терминала
mkdir -p /opt/gowave-docker && cd /opt/gowave-docker
curl -fsSLO https://raw.githubusercontent.com/aaaSaZaN/gowave/main/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/aaaSaZaN/gowave/main/.env.docker.example -o .env
# Generate the secrets
sed -i "s/^APP_SECRET=.*/APP_SECRET=$(openssl rand -hex 32)/; s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$(openssl rand -hex 24)/" .env
nano .env # set PANEL_DOMAIN and SUB_PUBLIC_DOMAIN
docker compose up -d

The panel is published on 127.0.0.1:3000. Next, set up a reverse proxy.

Updates run on the server. The panel shows this command when a new version is out:

Окно терминала
cd /opt/gowave-docker && docker compose pull && docker compose up -d

Panel CLI commands run inside the container:

Окно терминала
docker compose exec gowave /app/gowave rescue --list-admins

Why there is no update button in Docker: see Updating.