This project sets up semaphore-ui
with a PostgreSQL backend using Docker containers, making deployment and management efficient. This project is intended to be expanded upon to be an ideal boilerplate for setting up a secured Semaphore UI instance quickly and efficiently. Because automation is hard. The tools we use shouldn't be.
- Description
- Requirements
- Installation
- Configuration
- Usage
- Troubleshooting
- Contributing
- Code of Conduct
- License
This repository aims to simplify deploying and managing Semaphore UI and PostgreSQL using Docker and Docker Compose. All configurations are managed via environment variables, streamlining setup and updates. The project includes a self-signed SSL setup for secure connections.
-
Clone the Repository:
git clone <repository-url> cd docker-semaphore-ui
-
Set Up Environment Variables:
Copy the sample environment file to
.env
and adjust values according to your setup:cp .env.example .env
-
Build and Start the Services:
Use the following command to build the Docker images and start the services:
docker-compose up -d
This command launches PostgreSQL, Semaphore UI, and Nginx containers in detached mode.
-
Access the Semaphore UI:
You can now access the Semaphore UI at
https://localhost
.
Configure all necessary information in the .env
file. Key variables include:
-
PostgreSQL Configuration:
POSTGRES_USER
The database user. Default isadmin
.POSTGRES_PASSWORD
The database password. Default ischangeMe
.POSTGRES_DB
The database name. Default issemaphore
.
-
Semaphore Admin Credentials:
SEMAPHORE_ADMIN_NAME
The admin username. Default isAdmin
.SEMAPHORE_ADMIN_EMAIL
The admin email. Default isadmin@example.com
.SEMAPHORE_ADMIN_PASSWORD
The admin password. Default ischangeMe
.SEMAPHORE_ACCESS_KEY_ENCRYPTION
The encryption key for access keys. Generate usingopenssl rand -base64 32
.
- Start Services: Use
docker-compose up -d
to start. - Stop Services: Use
docker-compose down
to stop. - View Logs: You can view logs using
docker-compose logs <service_name>
.
- Database Connection Issues: Verify your
.env
configurations for correct credentials. - Service Unavailability: Ensure no other service is running on ports 3000 or 5432.
Contributions are encouraged! Please read the Contributing Guide for more details.
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.