Skip to content

christinloehner/FediSuite-Docker-Image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FediSuite Docker Image Build Repository

License: GPL v3 Docker Image Version Docker Image Size Docker Pulls GitHub issues Last Commit

The Docker Hub image is the canonical published release artifact for this repository.

This repository contains the full FediSuite application source code and everything required to build and publish Docker images.

Project website: https://www.fedisuite.com

It is the canonical source/build repository for the project.

What Users Should Use

FediSuite currently has several important public URLs with different purposes.

In short:

  • If you want to learn about FediSuite, start at the website.
  • If you want to self-host FediSuite, use the FediSuite repository with the deployment files.
  • If you want to report bugs or work on the application itself, use this repository.
  • If you want the ready-to-run container image, use Docker Hub.

ATTENTION

We’re using a slightly special versioning philosophy:

We use a 3-part version format, like: 1.20.13

  • The first number is the major version and represents really big changes.
  • The second number is for new features and important bug fixes.
  • The third number represents bleeding-edge versions.

The last number gets bumped for test releases. Once all tests are successful, the second number is increased, which basically means it is a production release.

So keep this in mind: for a production setup, you should only update when the second number changes.

Bug Reporting and Contribution

If you find a bug or if you want to contribute, please either file a bug report or read the CONTRIBUTING.md here:

https://github.com/christinloehner/FediSuite-Docker-Image

What This Repo Is For

Use this repository when you want to:

  • develop the application
  • change frontend or backend code
  • run source-based local tests
  • build Docker images
  • publish images to Docker Hub / GHCR

Self-hosters should use the separate deployment repository instead of this one:

Included

  • full frontend source in src/
  • full backend source in server/
  • static assets in public/ and logo/
  • Dockerfile
  • package.json / package-lock.json
  • GitHub Actions for CI and Docker publishing
  • docker-compose.build.yml for local source-based validation
  • project docs such as CONTRIBUTING.md, SECURITY.md, AGENTS.md

Local Development / Validation

For source-based local validation:

cp .env.example .env
docker compose -f docker-compose.build.yml up -d --build

For direct frontend build verification:

npm ci
npm run build

For real image-build verification:

docker build -t fedisuite-build-repo-test .

Environment Variables

This repo keeps the fuller .env.example because it may be used for:

  • local source validation
  • image build verification
  • optional frontend branding at build time

Notable groups:

  • runtime/backend variables such as DATABASE_URL, JWT_SECRET, APP_URL
  • worker/background flags such as ENABLE_SCHEDULER, ENABLE_POSTS_REFRESH
  • optional frontend build-time branding variables such as VITE_APP_NAME

Docker Publish

The GitHub Actions workflow under .github/workflows/docker-publish.yml is intended to publish multi-arch images on release tags.

Expected secrets:

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN

Typical release flow:

  1. push changes to the source repository
  2. create a release tag
  3. let GitHub Actions build and publish the image
  4. update the deployment repository to use the desired image tag if needed

Relationship To The Deployment Repo

The separate deployment repo should only pull published images built from this repository.

That means:

  • this repo contains source code and image-build logic
  • the other repo contains compose/env/docs only

Do not collapse the two concerns again unless that separation is intentionally being redesigned.

Important Project Constraints

  • keep timestamps stored in UTC
  • keep server/init-db.js idempotent
  • do not reintroduce proprietary support widgets or private infrastructure assumptions
  • keep the Dockerfile builder and runtime stages aligned
  • do not assume self-hosters will compile the app locally

License

FediSuite is licensed under the GNU GPL v3.0.

About

Docker Image Development for FediSuite

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors