arca

module
v0.0.0-...-f028939 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2026 License: AGPL-3.0

README

Arca

CI Go Report Card

Unified ROM management platform. Self-hosted, open-source, built from scratch.

Go backend + SvelteKit frontend. Production-ready with OpenTelemetry observability, Prometheus metrics, Sentry error tracking, and full K8s deployment via Helm + CloudNativePG + ArgoCD. Background job processing via River (PostgreSQL-native queue) — not a CLI tool, a full manager.

Features

  • Scan & organize ROM libraries with filesystem watching
  • Verify ROMs against DAT files (Logiqx, MAME, CMPro, Software List, SMDB)
  • Enrich metadata from 9+ sources (IGDB, MobyGames, Screenscraper, SteamGridDB, RetroAchievements, LaunchBox, Hasheous, Steam, RAWG)
  • Play in browser via EmulatorJS integration
  • Track progress with per-user ratings, statuses, backlog, play sessions
  • RetroAchievements integration with badges and progress tracking
  • Collections — manual, virtual (auto from metadata), and smart (filter-based)
  • 1G1R filtering with region/language/revision preferences
  • Patching (IPS, IPS32, BPS, UPS)
  • Device sync to handhelds (muOS, Android, custom SSH targets)
  • Netplay rooms with WebRTC
  • Feed endpoints (Tinfoil, WebRCade, PKGi, Kekatsu DS)
  • Export to ES-DE, Pegasus, RetroArch playlists, LaunchBox, CSV
  • AI-assisted identification via Ollama or Claude API

Quick Start

# Clone and start all services
git clone https://github.com/lusoris/arca.git
cd arca
make docker-up

# Open http://localhost:5173

Development

make docker-up      # Start Postgres, Dragonfly, Typesense
make run            # Start Go backend on :8080
make web-dev        # Start SvelteKit on :5173 (proxies to backend)

See CLAUDE.md for the full developer guide.

Stack

Backend: Go 1.26, uber-go/fx, pgx/v5 + sqlc, River, rueidis + otter, ogen (OpenAPI), Casbin RBAC, Argon2id, OTel, Prometheus, Sentry

Frontend: SvelteKit 5, TypeScript, Tailwind CSS 4, TanStack Query, svelte-sonner, EmulatorJS, paraglide (i18n)

Infrastructure: Docker Compose, Helm + CloudNativePG + ArgoCD + Kustomize, GitHub Actions

Documentation

License

AGPL-3.0

Directories

Path Synopsis
cmd
arca command
internal
api
api/oas
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
app
domain/acquire
Package acquire provides the "arr-style" ROM acquisition pipeline: wanted list → indexer search → release parsing → hash-first matching → download → collection-aware import.
Package acquire provides the "arr-style" ROM acquisition pipeline: wanted list → indexer search → release parsing → hash-first matching → download → collection-aware import.
ws

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL