OrgStack is a starter template currently in early development. This quickstart gets you running with the foundational infrastructure (Spring Boot application, PostgreSQL database, BaseEntity with JPA auditing). See the architecture guide for the planned feature set.
Get OrgStack running locally
This guide walks you through cloning the repository, starting the database with Docker Compose, and running the Spring Boot skeleton application locally.Start PostgreSQL with Docker Compose
OrgStack includes a Docker Compose configuration for the PostgreSQL database. Start it with:This starts PostgreSQL 16 with the following configuration:Verify PostgreSQL is running:You should see the
The database runs on port 5432 and persists data in a Docker volume named
orgstack_pg_data.orgstack-postgres container running.Run the Spring Boot backend
Navigate to the backend directory and start the application:The backend will start on port 8080. You should see output indicating the application has started successfully:
What you just deployed
Your local OrgStack setup includes:PostgreSQL 16
Relational database ready for the
orgstack schemaSpring Boot application
Skeleton Spring Boot app running on port 8080 with foundational dependencies (Spring Security, JPA, Actuator)
The application currently runs with minimal functionality. It provides the infrastructure foundation (BaseEntity, JpaConfig) but does not yet include controllers, services, or API endpoints. See the planned architecture for details on the intended implementation.
Understanding the setup
Database configuration
The backend connects to PostgreSQL using the configuration inapplication.properties:
backend/src/main/resources/application.properties
JPA auditing
OrgStack automatically tracks creation and modification timestamps on all entities:com/orgstack/config/JpaConfig.java
BaseEntity, which provides:
UUID id- Unique identifierInstant createdAt- Creation timestampInstant updatedAt- Last modification timestamp
com/orgstack/common/BaseEntity.java
Development workflow
Running in development mode
For active development, you can use Spring Boot DevTools for automatic restarts:Stopping the services
To stop PostgreSQL:Ctrl+C in the terminal where it’s running.
The database data persists in a Docker volume, so you won’t lose data when stopping the container.
Removing all data
To completely remove the database and all data:-v flag removes the volume containing the database data.
Prerequisites
Before you start, make sure you have:Java 25 or later
Java 25 or later
Docker and Docker Compose
Docker and Docker Compose
Git
Git
Next steps
Now that you have OrgStack running locally, explore these topics:Multi-tenancy concepts
Learn how OrgStack implements strict tenant isolation
Authentication
Understand JWT-based authentication with Spring Security
Architecture overview
Explore the layered architecture and design patterns
Development setup
Set up your IDE and start building features
Troubleshooting
Port 5432 already in use
Port 5432 already in use
If you have another PostgreSQL instance running, stop it or change the port in Update
docker-compose.yml:application.properties to match:Port 8080 already in use
Port 8080 already in use
If port 8080 is in use, change the server port in
application.properties:Database connection errors
Database connection errors
Ensure PostgreSQL is running:Check the logs:Try connecting with psql:
Maven build errors
Maven build errors
Clear the Maven cache and rebuild:If you’re behind a proxy, configure it in
~/.m2/settings.xml.Need help? Open an issue on GitHub or check the development guide for more detailed setup instructions.