Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/reds-skywalker/Lightpress/llms.txt

Use this file to discover all available pages before exploring further.

Lightpress uses Docker Compose to orchestrate its frontend client, microservices, and supporting dependencies as a unified local environment. You do not need to install language runtimes or databases directly on your machine — Docker handles everything. Follow the steps below to go from zero to a running stack.
Docker Desktop (or Docker Engine with the Compose plugin) must be installed before you begin. Download it from docs.docker.com/get-docker.
1

Clone the repository

Pull the Lightpress source code onto your machine and enter the project directory.
git clone https://github.com/reds-skywalker/Lightpress.git
cd Lightpress
The top-level directory contains the four main areas of the project: client/, microservices/, infraestructure/, and scripts/, along with the docker-compose.yml that ties local development together.
2

Configure environment variables

Lightpress services are configured through a .env file in the project root. Create yours from the provided example:
cp .env.example .env
Open .env in your editor and fill in values for each service. At minimum you will need to set credentials for any backing services (databases, object storage, etc.) that your microservices depend on.
Never commit your .env file. It is already listed in .gitignore, but double-check before pushing to a shared branch.
Each microservice may also support its own .env file inside its subdirectory for service-specific overrides. Check the README inside each service directory as the project grows.
3

Build and start all services

Run Docker Compose from the project root. The --build flag ensures images are built fresh from the local Dockerfile in each service directory.
docker compose up --build
Docker will build each service image sequentially, then start all containers. On subsequent runs, omit --build if no code has changed to skip the build step and start faster.
docker compose up
To run the stack in the background (detached mode):
docker compose up --build -d
4

Verify services are running

Once the stack is up, confirm all containers started successfully:
docker compose ps
You should see each service listed with a running status. A healthy output looks like:
NAME                  SERVICE         STATUS     PORTS
lightpress-client     client          running    0.0.0.0:5173->5173/tcp
lightpress-api        api             running    0.0.0.0:4000->4000/tcp
lightpress-postgres   postgres        running    0.0.0.0:5432->5432/tcp
Open http://localhost:5173 in your browser to reach the frontend client. API requests are served from http://localhost:4000 by default.
Port numbers depend on what is configured in docker-compose.yml. Check that file for the authoritative list as services are added to the project.
5

Stop the stack

When you’re done developing, stop all running containers cleanly:
docker compose down
To also remove the named volumes (useful when you want a clean slate for databases):
docker compose down -v

Troubleshooting common issues

Run docker compose logs <service-name> to read the output from the failing container. Missing environment variables are the most common cause — confirm every required key in .env has a value.
Another process on your machine is binding the same port. Either stop that process, or edit docker-compose.yml to map the service to a different host port (e.g., change 3000:3000 to 3001:3000).
On older Docker installations, Compose is a separate binary invoked as docker-compose (with a hyphen). Try docker-compose up --build instead, or upgrade to Docker Desktop v4+ which bundles Compose as a plugin.

Next steps

Architecture overview

Understand how the client, microservices, and AWS infrastructure fit together.

Deployment

Deploy Lightpress to AWS with CloudFormation and CodeBuild.

Frontend client

Learn about the structure and conventions of the client/ directory.

Scripts & automation

Explore the Bash and Python scripts that automate operational tasks.

Build docs developers (and LLMs) love