Initial build: WishNinja self-hosted gift wishlist manager
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:
@@ -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"
|
||||
Reference in New Issue
Block a user