Sign inSign up

fulgurapp/fulgurant

By fulgurapp

•Updated about 2 months ago

Fulgurant is the sync server for Fulgur, allowing secure text file sharing between instances.

Image
Web servers
1

2.1K

fulgurapp/fulgurant repository overview

⁠Fulgurant

GitHub⁠

Backend API server for Fulgur⁠, a multiplatform text editor. Enables file synchronization between devices with end-to-end encryption. Self-hostable to keep user data private.

Despite already having all the needed features to be perfectly effective together with Fulgur, this server is still in active development and is not yet recommended for production. There's still some work to be done (which may imply breaking changes), and more testing, for Fulgurant to be given the green light for production with a direct, public access. If you want to test Fulgurant, please run it in a private environment not facing the wild internet yet.

⁠Features

  • User authentication with email verification
  • Device management and API key generation
  • End-to-end encrypted file sharing (AES-256-GCM)
  • Automatic share expiration and cleanup
  • Admin and User type accounts
  • Web interface for profile, shares and device management
  • Web interface for Admin users for user management
  • SQLite and PostgreSQL database support
  • REST API for desktop app integration
  • SSE support for notifying a Fulgur instance of available shares

⁠Docker compose

Docker compose on GitHub⁠

⁠Configuration

VariableRequiredDefaultDescription
DATABASE_URLNosqlite:data/database.dbDatabase connection string. SQLite: sqlite:data/database.db. PostgreSQL: postgresql://user:pass@host:5432/db
JWT_SECRETYes-JWT signing secret (minimum 32 characters)
JWT_EXPIRY_SECONDSNo900JWT access token lifetime in seconds (60-86400)
IS_PRODNotrueEnables production mode (SMTP required when true)
CAN_REGISTERNofalseEnable public self-registration
SHARE_VALIDITY_DAYSNo3Share expiry in days (1-30)
MAX_DEVICES_PER_USERNo99Max devices per user (0-10000)
SSE_HEARTBEAT_SECONDSNo30SSE heartbeat interval in seconds (5-300)
BIND_HOSTNo127.0.0.1Bind address (0.0.0.0 for external access)
BIND_PORTNo3000Bind port
RUST_LOGNodebug (dev), info (prod)Log filter
LOG_FOLDERNologsLog directory
DAILY_DATABASE_BACKUPNofalseEnable daily SQLite backup task
BACKUP_FOLDERNobackupsBackup output directory
SMTP_HOSTYes if IS_PROD=true-SMTP host
SMTP_LOGINYes if IS_PROD=true-SMTP username/login
SMTP_PASSWORDYes if IS_PROD=true-SMTP password
SMTP_PORTNo587SMTP port

Tag summary

Content type

Image

Digest

sha256:a4fcf47a7…

Size

29.3 MB

Last updated

about 2 months ago

docker pull fulgurapp/fulgurant