OpenLogs

Swap a SaaS bill for a compose file you can read.

OpenLogs will be a directory of open-source tools that replace paid SaaS. Each entry will give you a docker-compose file, a difficulty rating with the reason, and a plain note on the license and business model.

No entries are published yet. The example file shows the format.

compose.yaml Example. Not a published entry.
services:
  wiki:
    image: example/wiki:2.4
    restart: unless-stopped
    ports:
      - "8080:3000"
    environment:
      DATABASE_URL: postgres://wiki:${DB_PASSWORD}@db/wiki
      SMTP_HOST: ${SMTP_HOST}
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: wiki
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: wiki
    volumes:
      - wiki-db:/var/lib/postgresql/data

volumes:
  wiki-db:

Rated Medium

  1. Easy
  2. Medium
  3. Hard
  • Lines 2 and 13Two services to run and update: the app and a Postgres database.
  • Line 21One volume holds the database. You own its backups.
  • Line 9It needs an outside mail server to send email.
Example entry for a made-up app. The rating and its reasons are illustrative.

What every entry will include

A compose file, checked
Before an entry goes live, we will run docker compose config on its file. That check catches YAML and schema errors before you run it.
A difficulty rating, with the reason
Easy, Medium or Hard. The reason names what drives it: how many services you run, what data you must back up, and what outside services it needs, such as a mail server.
The license and business model
Fully open source, open-core, or source-available. If a feature is only in an enterprise plan, the entry will name it.

Example entries

Three real tools, shown in the entry format. The ratings, reasons and compose files here are illustrative and not verified. None of them is a published entry.

Filter by difficulty

Showing 3 of 3 examples

  • Uptime Kuma

    Difficulty: Easy

    Replaces a hosted uptime monitor.

    One container and one data volume. No outside services to set up.

    Example. Not a published entry.

  • ntfy

    Difficulty: Easy

    Replaces a paid push-notification service.

    One container with a cache volume and a config folder.

    Example. Not a published entry.

  • Umami

    Difficulty: Medium

    Replaces hosted web analytics.

    Two services: the app and a Postgres database that you back up yourself.

    Example. Not a published entry.

Get the first entries by email

Emails start with the first published entries.