- Add error field to EmailNotificationState type - Set user-friendly error messages in MailNotifications.register() for: missing signer, missing server config, NIP-98 auth failure, network errors, and server errors - Clear error on successful registration - Show inline error banner in the email settings card - Return early on registration failure (like push does) - Clear error when user edits email/frequency or clicks reset |
||
|---|---|---|
| .agents/skills | ||
| .gitea/workflows | ||
| .husky | ||
| android | ||
| assets | ||
| e2e | ||
| ios | ||
| scripts | ||
| src | ||
| static | ||
| .ackrc | ||
| .dockerignore | ||
| .env | ||
| .fdignore | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| build-in-production.sh | ||
| build.sh | ||
| capacitor.config.ts | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| eslint.config.js | ||
| LICENSE | ||
| link_deps | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| postcss.config.js | ||
| pwa-assets.config.js | ||
| README.md | ||
| server.js | ||
| skills-lock.json | ||
| svelte.config.js | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vite.config.server.ts | ||
| vite.config.ts | ||
| zapstore.yaml | ||
Flotilla
A discord-like nostr client based on the idea of "relays as groups".
If you would like to be interoperable with Flotilla, please check out this guide: https://habla.news/u/hodlbod@coracle.social/1741286140797
Environment
You can also optionally create an .env.local file and populate it with the following environment variables (see .env.template for examples):
Platform branding
VITE_PLATFORM_URL- The url where the app will be hostedVITE_PLATFORM_NAME- The name of the appVITE_PLATFORM_LOGO- A logo url for the app. Can be a local path or https link. Must be a PNG file.VITE_PLATFORM_ACCENT- A hex color for the app's accent color (used only for generated manifest, for more control create a custom theme file)VITE_PLATFORM_DESCRIPTION- A description of the appVITE_PLATFORM_TERMS- URL to your terms of service pageVITE_PLATFORM_PRIVACY- URL to your privacy policy pageVITE_PLATFORM_LOGEE- A hex pubkey which will receive logs users send from their privacy settings
Platform mode
VITE_PLATFORM_RELAYS- A comma-separated list of relay urls that will make flotilla operate in "platform mode". Disables all space browse/add/select functionality and makes the first platform relay the home page.
Defaults
VITE_DEFAULT_PUBKEYS- A comma-separated list of hex pubkeys for bootstrapping web of trustVITE_DEFAULT_SPACES- A comma-separated list of relay urls that new users will be automatically joined to on signup. Each one may optionally include an invite code, delimited by|, e.g.my.space.com|CODE.VITE_DEFAULT_RELAYS- A comma-separated list of relay urls used as default outbox/inbox relaysVITE_DEFAULT_MESSAGING_RELAYS- A comma-separated list of relay urls used for encrypted direct messagesVITE_DEFAULT_BLOSSOM_SERVERS- A comma-separated list of blossom server urls used for file uploads
Infrastructure
VITE_INDEXER_RELAYS- A comma-separated list of relay urls used for user profile/key lookupVITE_SIGNER_RELAYS- A comma-separated list of relay urls used for NIP-55 remote signersVITE_BLOCKED_RELAYS- A comma-separated list of relay urls that will be blockedVITE_PUSH_SERVER- URL of the push notification serverVITE_PUSH_BRIDGE- WebSocket URL of the push notification relay bridgeVITE_POMADE_SIGNERS- A comma-separated list of Pomade signer server URLs (3+ required to enable email signup)VITE_THUMBNAIL_URL- URL of the image thumbnail service
These values won't be used for a built version. Instead, env variables should be provided to build.sh directly or to the built container.
If you're deploying a custom version of flotilla, be sure to remove the plausible.coracle.social script from app.html. This sends analytics to a server hosted by the developer.
Development
See CONTRIBUTING.md.
Deployment
To run your own Flotilla, it's as simple as:
pnpm install
pnpm run build
pnpm run start
Or, if you prefer to use a container:
docker run -d -p 3000:3000 gitea.coracle.social/coracle/flotilla:latest
Alternatively, you can copy the build files into a directory of your choice and serve it yourself:
mkdir ./mount
docker run -v ./mount:/app/mount gitea.coracle.social/coracle/flotilla:latest bash -c 'cp -r build/* mount'