Skip to content
This repository was archived by the owner on Feb 14, 2026. It is now read-only.

Lightweight fork for single-user self-hosting#32

Draft
Akeboshiwind wants to merge 5 commits intoslopus:mainfrom
ake-forks:main
Draft

Lightweight fork for single-user self-hosting#32
Akeboshiwind wants to merge 5 commits intoslopus:mainfrom
ake-forks:main

Conversation

@Akeboshiwind
Copy link

Hi! I wanted to self-host this but postgres + redis + minio felt heavy for just me.

I've slimmed it down to a single SQLite file:

  • Removed Redis (was only used for a health check ping)
  • Removed MinIO (GitHub avatars now link directly)
  • Swapped Postgres → SQLite

It runs on Fly.io for ~$1.50/month with auto-scale-to-zero.

Obviously this won't work at scale, and skipping the avatar re-hosting does expose which GitHub users are logged in (though I don't use that feature anyway).

Not expecting a merge - just wanted to flag it exists in case any pieces are useful to you.

Akeboshiwind and others added 5 commits January 30, 2026 22:24
Redis was only used for a health check ping at startup. Removed:
- ioredis and @socket.io/redis-streams-adapter packages
- sources/storage/redis.ts
- redis.ping() call from main.ts

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Use GitHub avatar URLs directly instead of re-hosting images. Removed:
- minio and sharp packages
- uploadImage.ts, processImage.ts, thumbhash.ts
- S3 client initialization and loadFiles() startup check

Avatar images now link directly to GitHub's CDN, which is simpler
and always up-to-date.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Simplifies deployment to a single file database. Changes:
- Prisma provider: postgresql → sqlite
- Removed relationJoins preview feature (Postgres-only)
- Removed ordered index syntax (SQLite limitation)
- Removed Serializable isolation (SQLite is single-writer)
- Removed case-insensitive search mode (SQLite limitation)
- Deleted 37 PostgreSQL migrations (fresh start required)
- Updated scripts: db:push/db:reset replace migrate commands
- Removed Docker commands for postgres/redis/minio

BREAKING: Requires fresh database. Existing deployments need
to re-authenticate all clients (mobile app, CLI daemons).

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Copy prisma schema to runtime container
- Run prisma db push before starting server (idempotent)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Add fly.toml configuration
- Add deployment instructions to README
- Include Litestream for continuous SQLite backup to Tigris
- Add cost estimates (~$1.50-3/month)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant