2.5 KiB
Tranquil PDS production deployment on Alpine Linux
This guide covers installing Tranquil PDS on Alpine Linux with OpenRC via the upstream package.
Prerequisites
- A server :p
- Disk space for blobs, around* 1GB per active user as a baseline
- A domain name pointing to your server's IP
- A wildcard TLS certificate for
*.pds.example.com, since user handles are served as subdomains
🦪 Lewis**
- "around" here meaning "at absolute least!"
🍂 June
** hi Lewis !
Installation
First, ensure you have the testing repository enabled in your /etc/apk/repositories, with:
@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing
🍂 June
There's a MR open to move the package to the community repository (!108614)
Install the upstream package with:
apk add tranquil-pds@testing
This, by default, will:
- Install the server binary, as well as the frontend, default config, and OpenRC service files;
- Create and configure the
tranquil-pdssystem user.
Database Configuration
PostgreSQL is not a direct package dependency, so it needs to be installed and configured separately. Install and start it with:
apk add postgresql
grep 'port=' /etc/conf.d/postgresql # check/configure the port
/etc/init.d/postgresql start
Create the PDS role and database (as the postgres user) with:
psql \
-c 'CREATE ROLE "tranquil-pds" WITH LOGIN;' \
-c 'CREATE DATABASE "tranquil-pds" OWNER "tranquil-pds";'
Set the following options in your config file (/etc/tranquil-pds/config.toml):
[server]
hostname = "pds.example.com"
[database]
url = "postgresql:///tranquil-pds?host=/run/postgresql"
[storage]
repo_backend = "postgres"
# as well as other required options in [secrets]
Server Configuration
Optionally review the service options in /etc/conf.d/tranquil-pds.
Start the service with:
/etc/init.d/tranquil-pds start
The logs will be saved to /var/log/tranquil-pds.log.
Reverse Proxy Configuration
You will probably also want to run a reverse proxy like Nginx or Caddy. Refer to their respective Alpine Wiki pages for instructions.
An example Nginx configuration for Tranquil can be found in nginx.conf.