Getting Started
Requirements
SideStore Connect is pretty lightweight, with the frontend using client-side rendering and the backend being built in Python.
As long as a web server and Python 3 run on your system, SideStore Connect should be able to run as well. The pre-built docker images are available for both x86 and arm64, and are built using an Alpine image as the base.
A base understanding of docker and docker-compose is useful but likely not strictly necessary with this guide (at least I hope so).
Installation
It is recommended to run SideStore Connect as a docker container, not only for easier configuration but also for simpler upgrades.
However, if you want to contribute to SideStore Connect, you can follow the steps below to get a local version of SideStore Connect up and running.
Docker-Compose
The easiest way to get started with SideStore Connect is to use a pre-built docker image, which is available for x86 and arm64. This image contains both the frontend and the backend of SideStore Connect and can easily be configured using environment variables.
As a database, SideStore Connect supports both SQLite as well as PostgresSQL. This documentation focuses on the latter.
Here is an example configuration for docker-compose, which includes SideStore Connect as well as a PostgresSQL database:
version: '3.5'
services:
app:
image: sidestore-connect:latest
container_name: sidestore-connect
restart: unless-stopped
ports:
- "80:80/tcp"
env_file:
- ./.env
volumes:
- './data/storage:/data/storage'
networks:
- sidestore-connect
db:
image: postgres
container_name: sidestore-connect-db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: yourpasswordhere
POSTGRES_USER: sidestore
volumes:
- ./data/db:/var/lib/postgresql/data
networks:
- sidestore-connect
networks:
sidestore-connect:
name: sidestore-connect
driver: bridge
version: '3.5'
services:
app:
image: sidestore-connect:latest
container_name: sidestore-connect
restart: unless-stopped
ports:
- "80:80/tcp"
env_file:
- ./.env
volumes:
- './data/storage:/data/storage'
networks:
- sidestore-connect
db:
image: postgres
container_name: sidestore-connect-db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: yourpasswordhere
POSTGRES_USER: sidestore
volumes:
- ./data/db:/var/lib/postgresql/data
networks:
- sidestore-connect
networks:
sidestore-connect:
name: sidestore-connect
driver: bridge
This configuration makes a few assumptions:
- You specify your configuration environment variables for SideStore Connect in an extra
.env
file (recommended) - You want the local storage driver to place all files in a
data
subfolder from where the docker-compose.yml is located - You want to use PostgresSQL as the database engine and the data should be stored persistent in the same
data
folder - You want SideStore Connect to listen on port 80. This is not advised. You should change it to a port above 1024, e.g. 8080, and use a reverse proxy when exposing the service to the internet.
If this doesn't suit your needs, use this configuration as a template. If you don't know how to modify the docker-compose configuration for your use-case, you maybe shouldn't modify it in the first place.
Please Note
Before starting your docker-compose stack, configure your instance and save the values to your .env
file or directly in the docker-compose.yml
.