The Einundzwanzig mobile app opens /auth/mobile in an in-app browser. After a Lightning (LNURL) or Nostr login the flow issues a personal access token and hands it back via the einundzwanzig://auth deep link. - New auth.mobile-login Livewire view: Lightning QR (shared k1) plus Nostr signing via NIP-55 Android signers (Amber) with server callback, and a confirmation screen for already authenticated sessions - MobileAuthController: NIP-55 callback verification, completion route issuing the token (replacing same-device tokens), redirect whitelist - Nostr login event verification and npub user resolution extracted to App\Support\NostrLogin, now shared with the interactive login - GET /api/user (auth:sanctum) returns the token owner's profile
BookCase and OrangePill models, factories, migrations, and related references. Added tests for new service and meetup creation flows. Updated PHPUnit settings and browser-specific configurations.
Hosted:
- de-DE: https://portal.einundzwanzig.space/de/meetups
- de-AT: https://portal.einundzwanzig.space/at/meetups
- de-CH: https://portal.einundzwanzig.space/ch/meetups
- pl-PL: https://portal.dwadziesciajeden.pl/pl/meetups
- hu-HU: https://portal.huszonegy.world/hu/meetups
Host your national domain?
To add your national domain, you need to create a CNAME record pointing to portal.einundzwanzig.space.
Here's how:
- Add a subdomain like
portal.yourdomain.tld - Create a CNAME record pointing to
portal.einundzwanzig.space
DNS provider CNAME settings:
Type: CNAME
Name/Host/Alias: portal
Target/Value/Destination: portal.einundzwanzig.space
After setting up your CNAME, please notify the repository owner to refresh SSL certificates to include your domain.
Contributing and Proposals
Development
Prerequisites
- PHP 8.3+
- PostgreSQL (running locally or as a container)
- Redis (running locally or as a container)
- Node.js + Yarn
Installation
cp .env.example .env
composer install
(you need a valid Flux Pro license or send a message to Nostr - The Ben)
Migrate and seed the database
php artisan migrate:fresh --seed
Laravel storage link
php artisan storage:link
Install node dependencies
yarn
Start development environment
composer run dev
This starts the PHP dev server, queue worker, Pail log viewer, and Vite concurrently.
Update dependencies
yarn
Security Vulnerabilities
If you discover a security vulnerability within this project, please go to https://gitworkshop.dev. All security vulnerabilities will be promptly addressed.
License
Open-sourced software licensed under the MIT license.