session-open-group-server-l.../INSTALL.md

62 lines
3.0 KiB
Markdown

# Requirements
- Hosting with a public IP address
- make sure you have a working DNS hostname that points to your public IP address.
- an email address (LetsEncrypt requires this)
- 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 your Session ID moderator access
- replace PUBKEY with your Session ID and run `echo "PUBKEY=true" >> loki.ini`
### start it
Replace `your@email.tld` with your email address and `yourssl.domain.tld` with your public facing hostname. These are required for getting an SSL certification from LetsEncrypt which we will attempt to automatically do for you.
`EMAIL=your@email.tld DOMAIN=yourssl.domain.tld docker-compose up -d`
# Upgrade instruction
- make sure you're in the `loki-messenger-public-server` directory
- `EMAIL=your@email.tld DOMAIN=yourssl.domain.tld docker-compose 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
- `EMAIL=your@email.tld DOMAIN=yourssl.domain.tld docker-compose build` to update the local docker images
- `EMAIL=your@email.tld DOMAIN=yourssl.domain.tld docker-compose up -d` to restart the server