Setting up a selfoss Server

Introduction

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

Environment

Hardware amd64 VPS
OS Debian 10 Buster

Dependencies

  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_pass http://127.0.0.1:8800;
    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

https://certbot.eff.org/lets-encrypt/debianbuster-nginx

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:

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

Run server:

docker-compose up -d

 

Sources