Skip to content

DasIstMeow/timeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

184 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Timeline Logo Timeline

This is a secure personal timeline application for documenting and managing life events with client-side zero-knowledge encryption.

Screenshot

Features

Security

  • 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

Event Management

  • 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

Timeline Interface

  • Chronological vertical timeline display
  • Real-time search across event content
  • Time separators (daily, weekly, monthly, yearly)
  • Responsive design for all devices

Personalisation

  • 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

Data Management

  • Export timeline data as JSON
  • Export filtered events as PDF
  • Import events from JSON files

Notes

  • Personal notes feature with autosave
  • Write down stuff that does not fit in a timeline
  • All notes are zero-knowledge encrypted

Administration

  • Admin dashboard for user management
  • Create user accounts with secure password generation
  • Easy to use

Getting Started

Requirements

  • Docker and Docker Compose
  • Git

Installation

  1. Clone the repository:
git clone https://github.com/DasIstMeow/timeline.git
cd timeline
  1. Use the settings (DOMAIN, REQUIRE_TLS, USE_SELF_SIGNED_SSL) in the "docker-compose.yml" to configure the application.

  2. 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.

  3. Start the application:

docker compose up --build -d
  1. Retrieve admin credentials:
cat admin_credentials.txt
  1. Access the application at http://localhost:8080 or https://localhost:8443 (default ports) and login with username "admin" and the password from step 5.

Initial Configuration

  1. Log in with the admin credentials
  2. Create user accounts through the admin dashboard
  3. Users should change their password after first login
  4. Configure personal settings (theme, formats, display name)

Administrative Tasks

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.

Technical Information

Stack

  • Backend: Rust (Axum framework)
  • Database: PostgreSQL
  • Frontend: HTML, CSS, JavaScript
  • Deployment: Docker

Ports (changeable)

  • HTTP: 8080
  • HTTPS: 8443 (when configured)

Licence

This software is licensed under the GNU General Public Licence Version 3. Refer to the LICENCE file for more information.

About

A personal timeline / diary application built with Rust backend, Postgres database and HTML/CSS/JS web frontend.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors