Starter bundles for different environments:
| Environment | Notes | Bundle |
|---|---|---|
| Python 3 | Just Python 3 w/ uv | python-starter.tar.gz |
| Django 4 | Just Django w/ SQLite; Python 3.11; Django 4.2.19 | django4-starter.tar.gz |
| Django 5 | Django 5.2 w/ SQLite; Python 3.14; uv | django5-starter.tar.gz |
| Django 4 with Celery | Django / Celery / SQLite / RabbitMQ; Python 3.11, Django 4.2.19, Celery 5.4.0 | django4-celery-starter.tar.gz |
| Go | Just Go | golang-starter.tar.gz |
| Langflow | Python 3.12 / uv 0.8.15 | langflow-python-3.12-starter.tar.gz |
| Node.js | Node.js 20.10 / vite.js | nodejs-starter.tar.gz |
| Nextjs | Node 22.9 / Next.js | nextjs-starter.tar.gz |
| OpenJDK with Maven | Maven 3.9.9 / OpenJDK 23 | java-maven-openjdk23.tar.gz |
How to use:
mkdir myproject
cd myproject
tar xvzf {downloaded .tar.gz file}
docker compose build
All these should have an “app” service / container that you can shell in. The source files are mapped (via host mount) to the /code subdirectory inside the container.
Important:
Check docker-compose.yml and Dockerfile to see if there are additional setup instructions.
Shelling in:
docker compose run --rm --service-ports app /bin/bash
Remember to add the --service-ports option so that the shell instance exports the port(s) needed to access the server from the host outside the container.
How These Were Created
On a MacBook Pro, I created the necessary files and tested them, then I ran:
cd myproject
tar -cvzf {file.tar.gz} --exclude="**/__pycache__/*" .dockerignore .git .gitignore .python-version docker-compose.yml Dockerfile pyproject.toml README.md {...}
where {file.tar.gz} is the tar.gz file name and {...} are files and subdirectories beyond the basic files listed.