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]>
37 lines
3.0 KiB
XML
37 lines
3.0 KiB
XML
<?xml version="1.0"?>
|
|
<Container version="2">
|
|
<Name>WishNinja</Name>
|
|
<Repository>your-gitea-host/youruser/wishninja:latest</Repository>
|
|
<Registry>your-gitea-host</Registry>
|
|
<Network>bridge</Network>
|
|
<Privileged>false</Privileged>
|
|
<Support/>
|
|
<Project/>
|
|
<Overview>Self-hosted gift wishlist manager. Create wishlists, claim gifts (hidden from the list owner to keep the surprise), invite-only accounts. All data persists under /data.</Overview>
|
|
<Category>Tools: Productivity:</Category>
|
|
<WebUI>http://[IP]:[PORT:8080]/</WebUI>
|
|
<Icon/>
|
|
<ExtraParams/>
|
|
<PostArgs/>
|
|
<Shell>sh</Shell>
|
|
<DonateText/>
|
|
<DonateLink/>
|
|
|
|
<Config Name="WebUI Port" Target="8080" Default="8080" Mode="tcp" Description="HTTP port (terminate TLS at your reverse proxy)" Type="Port" Display="always" Required="true" Mask="false">8080</Config>
|
|
|
|
<Config Name="Data" Target="/data" Default="/mnt/user/appdata/wishninja" Mode="rw" Description="SQLite database, uploaded images, and data-protection keys" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/wishninja</Config>
|
|
|
|
<Config Name="Base URL" Target="WishNinja__BaseUrl" Default="https://wishninja.example.com" Description="Public URL used in invite/reset email links" Type="Variable" Display="always" Required="true" Mask="false"></Config>
|
|
|
|
<Config Name="Bootstrap Admin Email" Target="SEED_ADMIN_EMAIL" Default="" Description="First-run admin account email" Type="Variable" Display="always" Required="true" Mask="false"></Config>
|
|
<Config Name="Bootstrap Admin Password" Target="SEED_ADMIN_PASSWORD" Default="" Description="First-run admin account password" Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
|
|
|
<Config Name="SMTP Host" Target="WishNinja__Smtp__Host" Default="" Description="SMTP server (leave blank to disable email; invite links still shown in admin UI)" Type="Variable" Display="always" Required="false" Mask="false"></Config>
|
|
<Config Name="SMTP Port" Target="WishNinja__Smtp__Port" Default="587" Description="SMTP port" Type="Variable" Display="advanced" Required="false" Mask="false">587</Config>
|
|
<Config Name="SMTP Use STARTTLS" Target="WishNinja__Smtp__UseStartTls" Default="true" Description="Use STARTTLS" Type="Variable" Display="advanced" Required="false" Mask="false">true</Config>
|
|
<Config Name="SMTP User" Target="WishNinja__Smtp__User" Default="" Description="SMTP username" Type="Variable" Display="advanced" Required="false" Mask="false"></Config>
|
|
<Config Name="SMTP Password" Target="WishNinja__Smtp__Password" Default="" Description="SMTP password" Type="Variable" Display="advanced" Required="false" Mask="true"></Config>
|
|
<Config Name="SMTP From Address" Target="WishNinja__Smtp__FromAddress" Default="[email protected]" Description="Sender email address" Type="Variable" Display="advanced" Required="false" Mask="false"></Config>
|
|
<Config Name="SMTP From Name" Target="WishNinja__Smtp__FromName" Default="WishNinja" Description="Sender display name" Type="Variable" Display="advanced" Required="false" Mask="false">WishNinja</Config>
|
|
</Container>
|