This is a secure personal timeline application for documenting and managing life events with client-side zero-knowledge encryption.
- Secure Remote Password (SRP) authentication
- Client-side zero-knowledge encryption with AES-GCM-256
- All data encrypted in the browser before transmission
- Session-based authentication
- Optional two-factor authentication (2FA) with TOTP
- TLS/HTTPS support with automatic self signed certificate generation
- Create events with title, description, and timestamp
- Live timers show how much time passed since each event
- Custom or current timestamps for events
- USe labels for organisation and filtering
- Chronological vertical timeline display
- Real-time search across event content
- Time separators (daily, weekly, monthly, yearly)
- Responsive design for all devices
- Display custom name and profile picture
- Set a display-name which is zero-knowledge encrypted next to your login-name
- Theme selection (light, dark, system preference)
- Customisable accent colour
- Time format (12-hour or 24-hour)
- Date format preferences
- Export timeline data as JSON
- Export filtered events as PDF
- Import events from JSON files
- Personal notes feature with autosave
- Write down stuff that does not fit in a timeline
- All notes are zero-knowledge encrypted
- Admin dashboard for user management
- Create user accounts with secure password generation
- Easy to use
- Docker and Docker Compose
- Git
- Clone the repository:
git clone https://github.com/DasIstMeow/timeline.git
cd timeline-
Use the settings (DOMAIN, REQUIRE_TLS, USE_SELF_SIGNED_SSL) in the "docker-compose.yml" to configure the application.
-
Use "HTTP_PORT" and "HTTPS_PORT" in the "docker-compose.yml" to configure the ports and make sure they are the same as the docker port configuration.
-
Start the application:
docker compose up --build -d- Retrieve admin credentials:
cat admin_credentials.txt- Access the application at
http://localhost:8080orhttps://localhost:8443(default ports) and login with username "admin" and the password from step 5.
- Log in with the admin credentials
- Create user accounts through the admin dashboard
- Users should change their password after first login
- Configure personal settings (theme, formats, display name)
Administrators can:
- Create new user accounts (passwords auto-generated)
- Delete user accounts (requires confirmation)
- Change their own password
- View existing users
Note: Administrators cannot access user data due to zero-knowledge encryption.
- Backend: Rust (Axum framework)
- Database: PostgreSQL
- Frontend: HTML, CSS, JavaScript
- Deployment: Docker
- HTTP: 8080
- HTTPS: 8443 (when configured)
This software is licensed under the GNU General Public Licence Version 3. Refer to the LICENCE file for more information.
