ashlessscythe / timeoff-alien

Simple yet powerful absence management software for small and medium size business (community edition)
https://TimeOff.Management
MIT License
3 stars 2 forks source link

πŸš€ TimeOff.Management

πŸ“… Web application for managing employee absences with style!

✨ Features

πŸ†• New Features

Existing Features

πŸ› οΈ Installation

☁️ Cloud hosting

Visit http://timeoff.management/ and create a company account to use the cloud-based version.

🏠 Self hosting

# Clone the repository
git clone https://github.com/timeoff-management/application.git timeoff-management
cd timeoff-management

Standalone

npm install
npm start

🐳 Using Docker

# Pull the image
docker pull aliengen/timeoff-management-application:master

# Run the container
docker run -d -p 3000:3000 --env-file ./env --name timeoff aliengen/timeoff-management-application:master

🐳 Using Docker-compose

  1. Copy the example environment file:
cp .env.example .env
  1. Choose your database configuration:

    Option 1: External Database (recommended for production)

    • Set your DATABASE_URL in .env
    • Comment out the postgres service in docker-compose.yaml

    Option 2: Local Database (recommended for development)

    • Comment out DATABASE_URL in .env
    • Uncomment the postgres service in docker-compose.yaml
    • Configure DB_* variables in .env
  2. Start the application:

docker-compose up -d

The application will be available at http://localhost:3000 (or your configured port).

πŸ’Ύ Database Configuration

The application supports two database setup options:

  1. External Database (recommended for production)

    • Uses a hosted database service (e.g., AWS RDS, Neon, Supabase)
    • Set DATABASE_URL in .env
    • Better scalability and maintenance
    • Automatic backups and monitoring
    • Example: DATABASE_URL=postgresql://user:pass@host:5432/dbname?sslmode=require
  2. Local Database (recommended for development)

    • Runs PostgreSQL in a Docker container
    • Data persisted in a Docker volume
    • Easy setup for development
    • Includes optional Adminer for database management
    • Configure using DB_* variables in .env

Choose the option that best fits your needs. For development, the local database option provides a simpler setup. For production, an external database offers better reliability and features.

βš™οΈ Configuration

Configuration can be done through environment variables or JSON configuration files.

πŸ”‘ Environment Variables

Here's a summary of key environment variables you can set:

For a complete list of options, refer to the .env.example file in the project root.

πŸ§ͺ Run tests

USE_CHROME=1 npm test

πŸ”„ Updating existing instance

git fetch
git pull origin master
npm install
npm run-script db-update
npm start

🎨 Customization

πŸ“£ Feedback

Please report any issues or feedback via by opening an issue

Happy time off management! πŸŒ΄πŸ–οΈ