- A server with persistent storage
- 1 or more CPU cores
- ~20MB free RAM
- Build the server (building.md)
- Make data directories with
mkdir -pv data/uploads
in the directory where you will run the binary - Copy
.env.sample
as.env
(can be skipped if using env variables) - Set the variables in
.env
(can be skipped if using env variables)MAX_USERS
- Maximum number of users registered on an instanceSECRET_KEY
- A key shared with all the users. It should be unique. This is required to do any operation on the server. Without this, server will reject the request with a401 Unauthorized
HTTP codeJWT_SECRET
- This is used to sign the short lived authentication tokens and therefore be long and random. You can generate a random secret using the commandopenssl rand -hex 64
LISTEN_ADDRESS
- The HTTP address to start the server on
- Run the server with or without
-use-env=false/true
depending on your configuration.
- When running outside your local network, always use a reverse proxy with HTTPs
- Regularly take offsite backups of the
data
directory. This directory contains thesqlite
database and the encrypted data for each user
- Currently heroku based deployments are not supported due to the lack of persistent storage
- Only DB supported as of [9th feb 2021] is SQLite