Skip to content

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:

docker-compose.yml
YAML
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.

Compile from Source

Building the Frontend

Building the Backend

Start Locally

Copyright © 2024 SideStore Connect. All Rights Reserved.