Current Version: 1.9.1
Next Release: 1.9.2
Oak is a flexible cataloging application designed to help users organize and manage various types of collections, including:
- Projects
- Photos
- Paintings
- Electronic components
- And any other items that need cataloging
- Ruby on Rails — Main application framework
- MySQL 9.3.0 — Relational database
- Redis 6.2.4 — In-memory data store for background jobs
- Sidekiq — Background job processing
- Docker & Docker Compose — Containerization and orchestration
Oak is a Rails monolithic application served with Docker. The main source code lives in the source/ directory.
Key infrastructure components:
- The Rails app and frontend are served together (no separate frontend server)
- MySQL is used as the primary database
- Redis and Sidekiq handle background job processing
- A photo service is included for serving uploaded files
- Docker and Docker Compose installed
-
Clone the repository:
git clone https://github.com/darthjee/oak.git cd oak -
Run project setup (creates
.envfrom.env.example, installs dependencies, and prepares the database):make setup
-
Review and adjust
.envvalues if needed. -
Start the development environment and enter the container shell:
make dev
The following make commands are available for development:
-
make setup— First-time bootstrap command. Creates.envfrom.env.example, then runs setup inside the application container (yarn install, wait for DB, andrake db:create db:migrate db:seed). -
make dev— Starts the development environment and drops you into a shell inside the container. Useful for running commands, migrations, and general development tasks. -
make dev-up— Starts the application server, making it accessible in your browser at http://localhost:3000. -
make tests— Runs the test suite in an interactive shell.
- The main application runs on port 3000
- The photo service runs on port 3001
- Environment variables are configured via the
.envfile (generated from.env.examplebymake setup)
