Files
fluxer/NOTES.md
Kitty Cat 84ec7653d2 docs: document successful Docker build
Successfully built fluxer-server image for both amd64 and arm64.
Image pushed to Gitea container registry with multiple tags.
All critical patches from third-party guide applied.
2026-03-01 12:55:08 -05:00

4.4 KiB

uwu.lc Self-Hosting Notes

Branch Setup

Current branch: uwu (based on refactor)

  • Tracks: origin/refactor for rebasing upstream changes
  • Pushes to: i5/uwu on your Gitea instance at git.i5.wtf
  • Current state: 1 commit ahead (LFS config change)

Workflow

Pull upstream changes and rebase

git fetch origin
git rebase origin/refactor

Push your changes to Gitea

git push i5 uwu
# If you've rebased, use: git push i5 uwu --force-with-lease

View your changes

git log origin/refactor..uwu  # Show commits you've added

Why track refactor branch?

The refactor branch is a complete rewrite that:

  • Is simpler and lighter to self-host
  • Uses SQLite instead of complex database setup
  • Removes payment/Plutonium stuff for self-hosted deployments
  • Is much better documented
  • Is where active development happens

The old main/canary branches have the legacy stack that's harder to self-host.

Configuration Changes Made

  1. LFS Config (.lfsconfig): Updated to point to Gitea instance

    • Old: https://github.com/fluxerapp-old/fluxer-private.git/info/lfs
    • New: https://git.i5.wtf/fluxerapp/fluxer.git/info/lfs
  2. CI Workflows: Updated for Gitea compatibility

    • Changed all runners from blacksmith-8vcpu-ubuntu-2404 to ubuntu-latest
    • ci.yaml: Main CI workflow (typecheck, test, gateway, knip, ci-scripts)
    • release-server.yaml: Docker build workflow
      • Registry: ghcr.iogit.i5.wtf
      • Image: fluxerapp/fluxer-server
      • Trigger branch: canaryuwu
      • Default source ref: canaryuwu

Gitea Setup Requirements

Container Registry Authentication

The workflow tries to use secrets.GITEA_TOKEN or github.token for registry auth.

Required: Create a Gitea Personal Access Token:

  1. Go to Gitea Settings → Applications → Generate New Token
  2. Name: CI_Container_Registry
  3. Permissions: Select package (write access)
  4. Add to repository secrets as registry_token (Note: Can't use GITEA_ or GITHUB_ prefix)

Alternative: Update the workflow to use username/password:

  • Create a secret REGISTRY_USERNAME with your Gitea username
  • Create a secret REGISTRY_PASSWORD with a personal access token

Container Registry URL Format

Gitea registry format is typically:

  • git.i5.wtf/fluxerapp/fluxer-server:tag

If the registry requires a different format, check your Gitea container registry settings.

Docker Build Fixes Applied

Successfully built fluxer-server Docker image! Fixes applied:

  1. Fixed package path (app → app_proxy)
  2. Added Rust/WASM toolchain for frontend
  3. Added ca-certificates
  4. Fixed .dockerignore (locale files, emoji data, build scripts)
  5. Set FLUXER_CONFIG environment variable
  6. Updated ENTRYPOINT to target @fluxer/server
  7. Removed redundant typecheck step
  8. Generated locale files before build (lingui:compile)
  9. Reinstalled dependencies after copying source
  10. Allowed scripts/build directory in .dockerignore

Built image tags:

  • git.i5.wtf/fluxerapp/fluxer-server:nightly
  • git.i5.wtf/fluxerapp/fluxer-server:nightly-20260301
  • git.i5.wtf/fluxer-server:sha-2e9010d

TODO

  • Modify GitHub Actions workflows for Gitea compatibility
  • Fix container registry authentication
  • Apply patches from third-party guide
  • Build Docker image
  • Configure for uwu.lc domain
  • Deploy to production
  • Set up backing services (Valkey, NATS, Meilisearch, LiveKit)

Resources

Known Build Issues from Third-Party Guide

The guide documents these critical Dockerfile fixes needed:

  1. Fix package path (app → app_proxy)
  2. Add Rust/WASM toolchain (frontend needs WebAssembly)
  3. Add ca-certificates (for rustup HTTPS download)
  4. Fix .dockerignore (unblock build scripts and locale files)
  5. Set FLUXER_CONFIG env var (rspack needs this)
  6. Copy config directory for build process
  7. Update ENTRYPOINT to target fluxer_server package

Additional fixes that may be needed (will address if they come up):

  • Empty CDN endpoint handling (frontend code)
  • Content Security Policy adjustments
  • NATS configuration
  • LiveKit webhook configuration