Initial build: WishNinja self-hosted gift wishlist manager
Build & Push Docker image / test (push) Failing after 1m33s
Build & Push Docker image / docker (push) Has been skipped

ASP.NET Core Blazor (.NET 10) + EF Core/SQLite + Identity. Features:
- Wishlists & items with local image storage (upload, clipboard paste,
  or URL fetched and stored locally)
- Owner-hidden claims (enforced at the query layer) to preserve surprises
- Admin-invite-only onboarding with email-based password resets
- All state under /data; ships as a single Docker image

Includes Dockerfile, docker-compose, Gitea Actions CI (test + push image),
Unraid template, and xUnit tests (claim privacy, invite lifecycle, image validation).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Jim Basso
2026-06-10 15:57:42 -05:00
co-authored by Claude Opus 4.8
commit 7dee999759
142 changed files with 66327 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
services:
wishninja:
build: .
# For Unraid, replace `build: .` with your published image, e.g.:
# image: gitea.example.com/youruser/wishninja:latest
container_name: wishninja
restart: unless-stopped
ports:
- "8080:8080"
volumes:
# SQLite db, uploaded images and data-protection keys all live here.
- ./data:/data
environment:
# Public URL — used to build links in invite / password-reset emails.
WishNinja__BaseUrl: "http://localhost:8080"
# First-run bootstrap admin (only used if the account doesn't already exist).
SEED_ADMIN_EMAIL: "[email protected]"
SEED_ADMIN_PASSWORD: "ChangeMe!2345"
# SMTP for password-reset and invite emails. Leave Host empty to log emails
# instead of sending them (invite links are also shown in the admin UI).
WishNinja__Smtp__Host: ""
WishNinja__Smtp__Port: "587"
WishNinja__Smtp__UseStartTls: "true"
WishNinja__Smtp__User: ""
WishNinja__Smtp__Password: ""
WishNinja__Smtp__FromAddress: "[email protected]"
WishNinja__Smtp__FromName: "WishNinja"