Skip to content
This repository has been archived by the owner on Mar 9, 2023. It is now read-only.

Advanced Installation and Upgrade instructions (docker based)

Ryan Tharp edited this page Feb 3, 2021 · 7 revisions

When to use this

This configuration just runs the backend for a open group server (with no SSL termination). This allow you to put a webserver (that supports reverse proxying) infront of the open group server, so you could:

  • host a different website on the same public ip
  • run multiple copies of the open group server on different ports

This mode runs in HTTP, and Session clients currently require HTTPS, so your webserver must handle the SSL/HTTPS termination.

YOU SHOULD ONLY USE THIS IF YOU KNOW HOW TO SET UP SSL AND REVERSE PROXYING ON YOUR OWN

Requirements

  • Hosting with a public IP address
  • make sure you have a working DNS hostname that points to your public IP address.
  • We recommend you have at least 4GB of free disk space and 512mb of ram (it may runs with less but use at your own risk)

Installation

1. Install docker (debian)

for non-debian-based installation instructions of Docker: https://docs.docker.com/v17.12/install/#server

Use this guide for additional troubleshooting help: https://docs.docker.com/v17.12/install/linux/docker-ce/debian/#set-up-the-repository or https://docs.docker.com/v17.12/install/linux/docker-ce/ubuntu/

remove any possibly previously installed docker installations

sudo apt-get remove docker docker-engine docker.io

install official docker repo

  • sudo apt-get update
  • sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

For Debian

  • curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  • sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

For Ubuntu

  • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

install and test docker

  • apt-get update
  • sudo apt-get install docker-ce
  • To check to make sure it's all working: docker run hello-world

2. Install docker-compose

create docker-compose script

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

make sure it's executable

chmod u+x /usr/local/bin/docker-compose

3. Install SOGS

  • git clone https://github.com/loki-project/session-open-group-server.git

install SOGS git submodules

  • cd session-open-group-server
  • git submodule init
  • git submodule update

make sure permissions on acme.json is correct

chmod 600 docker/acme.json

set up config

  • cp loki_template.ini loki.ini

Give yourself moderator access

  • replace PUBKEY with your Session ID and run echo "PUBKEY=true" >> loki.ini

start it

Replace yourssl.domain.tld with your public facing hostname. These are currently required for attachments to work properly. If you're running an additional open group server, feel free to change the port to bind to, as you won't want any conflicts and be sure your reverse proxy knows which one is which.

DOMAIN=yourssl.domain.tld PORT=7070 docker-compose -f docker-compose-backend.yml up -d

Upgrade instruction

  • make sure you're in the session-open-group-server directory
  • DOMAIN=yourssl.domain.tld PORT=7070 docker-compose -f docker-compose-backend.yml down to stop it from running
  • git pull to grab the latest source and configs
  • git submodule init to grab any submodule changes
  • git submodule update to grab any platform/nodepomf changes
  • DOMAIN=yourssl.domain.tld PORT=7070 docker-compose -f docker-compose-backend.yml build to update the local docker images
  • DOMAIN=yourssl.domain.tld PORT=7070 docker-compose -f docker-compose-backend.yml up -d to restart the server