3.9 KiB
3.9 KiB
Contributing to d0a1 Quickstart
Thanks for your interest in contributing! d0a1 Quickstart is a one-command local AI setup — Ollama + Open WebUI in Docker, no cloud, no API keys. This guide covers how to make changes and submit them.
Repository Layout
deploy.sh ← One-command deployment script (bash)
docker-compose.yml ← Docker Compose stack (Ollama + Open WebUI)
.env.example ← Template configuration file
.gitattributes ← LF normalization (prevents CRLF issues on WSL)
.gitignore ← Git ignore rules
README.md ← User-facing documentation (Spanish)
LICENSE ← MIT license
CONTRIBUTING.md ← You are here
Development Workflow
1. Clone and branch
git clone https://git.d0a1.es/monyi/quickstart.git
cd quickstart
git checkout -b feat/your-feature
2. Make changes
The repo is a pure infrastructure project — no build step, no dependencies. Edit deploy.sh, docker-compose.yml, .env.example, or README.md directly.
3. Test locally
cp .env.example .env
# Edit .env if you want non-default ports or models
./deploy.sh
Verify:
- Both containers start (
docker compose ps) - Open WebUI loads at
http://localhost:3000 - Ollama responds at
http://localhost:11434 - The default model downloads successfully
deploy.shexits with code 0
4. Commit and push
git add .
git commit -m "fix: short description of your change"
git push origin feat/your-feature
5. Create a Pull Request
Use the Gitea web UI or API. Reference any related issues in the PR body (e.g., closes #2).
Code Style
Shell (deploy.sh)
- Use
const/letequivalents — no mutable global state without good reason set -euo pipefailis already in place; maintain it- LF line endings only (no CRLF) —
.gitattributesenforces this - Use
printfinstead ofechofor portability (already established) - Quote all variable expansions:
"$VAR", not$VAR - Use
command -vfor binary checks, notwhich
Docker Compose
- Pin image versions explicitly (never use
:latest) - Use named volumes for persistent data
- Document any new environment variables in both
.env.exampleandREADME.md
Documentation
- README is in Spanish (user-facing); CONTRIBUTING.md is in English (contributor-facing)
- Keep the configuration table in README.md in sync with
.env.example - Use Markdown tables for structured data
Commits
- Use Conventional Commits:
feat:,fix:,docs:,chore:,refactor: - Keep the subject line under 72 characters
- Reference issues in the body when applicable
Testing
There is no automated test suite. Manual verification before submitting a PR:
- Run
./deploy.shon a clean environment (remove existing containers/volumes) - Verify both services come up healthy
- Test the
.env.example→.envcopy path works - If you changed
docker-compose.yml, verifydocker compose configvalidates - If you changed
deploy.sh, test on both Linux and WSL2 if possible
Ecosystem Context
d0a1 Quickstart is the entry point to the d0a1 ecosystem:
| Repository | Role |
|---|---|
| storeroom-os | Main production app |
| sdl-framework | Development framework |
| engineering-standards | Standards content |
| quickstart | This repo — local AI quickstart |
Reporting Issues
Open an issue at https://git.d0a1.es/monyi/quickstart/issues with:
- A clear title describing the problem or feature
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- OS and Docker version information
- Relevant logs (
docker compose logs)
License
By contributing, you agree that your contributions are licensed under the MIT license.