Setting up a Spacedeck Server

Introduction

This tutorial will explain how to set up Spacedeck server, a collaborative whiteboard in your browser.

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 user user and add persistence

useradd --system --create-home --shell /bin/bash --password <your-password-here> spacedeck
mkdir /home/spacedeck/storage /home/spacedeck/database
chown -R spacedeck:spacedeck /home/spacedeck

5. Configure NGINX server

Create and open vhost file:

cd /home/spacedeck
nano /etc/nginx/sites-available/sub.domain.tld.vhost

Paste the following configuration into the file:

server {
  listen 80;
  server_name sub.domain.tld;

  location / {
    proxy_pass http://127.0.0.1:9666;
    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/sub.domain.tld.vhost /etc/nginx/sites-enabled/sub.domain.tld.vhost

Restart NGINX:

systemctl restart nginx

6. Create Let's Encrypt certificate for sub.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/spacedeck
touch docker-compose.yaml
chmod 600 docker-compose.yaml
nano docker-compose.yaml

Paste the following configuration into the file:

version: '3.3'

services:
  spacedeck:
    image: akito13/spacedeck
    container_name: spacedeck
    ports:
      - "9666:9666"
    volumes:
      - /home/spacedeck/config:/app/config
      - /home/spacedeck/storage:/app/storage
      - /home/spacedeck/database/database.sqlite:/app/database.sqlite

Run server:

docker-compose up -d

8. Set up server

Visit your website: https://sub.domain.tld

Follow the on-screen instructions.

Do no change any database related settings.

Just enter the Admin's username, password and e-mail address. (E-Mail address does not need to be valid; won't be sent to.)
Then press the launch button and log in with your Admin account.

 

Sources