Setting up a selfoss Server


This tutorial will explain how to set up a selfoss Server.


Hardware amd64 VPS
OS Debian 10 Buster


  1. Docker
  2. docker-compose
  3. Internet Domain

Step by Step Instructions

1. Add DNS entry to your domain.

A domain of your choice needs to point to the address of your server.

2. Change to root user

sudo -s

3. Installation of additional Dependencies

apt update
apt install -y certbot nginx

4. Create selfoss user and add persistence

useradd --system --create-home --shell /bin/bash --password <your-password-here> selfoss
mkdir /home/selfoss/data

5. Configure NGINX server

Create and open vhost file:

nano /etc/nginx/sites-available/selfoss.domain.tld.vhost

Paste the following configuration into the file:

server {
  listen 80;
  server_name selfoss.domain.tld;
  client_max_body_size 0;

  if ($host != "selfoss.domain.tld") {
        return 444;

  location ~* {
    proxy_redirect default;
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


  location ~ /.well-known/acme-challenge/ {
    allow all;


Activate vhost file:

ln -s /etc/nginx/sites-available/selfoss.domain.tld.vhost /etc/nginx/sites-enabled/selfoss.domain.tld.vhost

Restart NGINX:

systemctl restart nginx

6. Create Let's Encrypt certificate for selfoss.domain.tld

Restart NGINX:

systemctl restart nginx

7. Run server

Create and open docker-compose.yaml:

cd /home/selfoss
nano docker-compose.yaml

Paste the following configuration into the file:

  image: akito13/selfoss
  container_name: selfoss
    - 8800:8888
    - /home/selfoss/data:/selfoss/data

Run server:

docker-compose up -d