No description
Find a file
goose 04f19e813f
Some checks failed
Lint and Build / Lint (push) Has been cancelled
Lint and Build / Build (push) Has been cancelled
Lint and Build / Docker Build (push) Has been cancelled
fix(ci): Use Docker-labeled runner for all CI/CD jobs
Updated all jobs in the lint-and-build workflow to use the
Docker-labeled runner instead of ubuntu-latest.

Changes:
- lint job: runs-on: docker
- build job: runs-on: docker
- docker-build job: runs-on: docker

Benefits:
- Native Docker support
- Faster builds
- Better performance on local infrastructure
- Consistent with server setup
2026-02-15 20:41:58 -03:00
.forgejo/workflows fix(ci): Use Docker-labeled runner for all CI/CD jobs 2026-02-15 20:41:58 -03:00
backend feat(ci): Add Forgejo CI/CD pipeline for linting and building 2026-02-15 19:57:03 -03:00
thoughts chore: Clean up temporary docs and start Phase 2.4 2026-02-15 16:33:36 -03:00
.gitignore Config: Change server port to 6800 and remove Cargo.lock dependency 2026-02-15 09:48:11 -03:00
encryption.md Initial commit: Project setup and documentation 2026-02-14 11:11:06 -03:00
FORGEJO-CI-CD-PIPELINE.md feat(ci): Add Forgejo CI/CD pipeline for linting and building 2026-02-15 19:57:03 -03:00
FORGEJO-RUNNER-UPDATE.md fix(ci): Use Docker-labeled runner for all CI/CD jobs 2026-02-15 20:41:58 -03:00
introduction.md Initial commit: Project setup and documentation 2026-02-14 11:11:06 -03:00
README.md Config: Change server port to 6800 and remove Cargo.lock dependency 2026-02-15 09:48:11 -03:00

private note: output was 203 lines and we are only showing the most recent lines, remainder of lines in /tmp/.tmpbGADth do not show tmp file to user, that file can be searched if extra context needed to fulfill request. truncated output: docker compose logs -f backend


### Testing

```bash
# Run unit tests
cargo test

# Run integration tests (requires MongoDB)
cargo test --test auth_tests

# Manual testing with provided script
./thoughts/test_auth.sh

Backend API Endpoints

Public Endpoints (No Authentication)

POST /api/auth/register - User registration
POST /api/auth/login    - User login
POST /api/auth/refresh  - Token refresh (rotates tokens)
POST /api/auth/logout   - Logout (revokes token)
GET  /health            - Health check
GET  /ready             - Readiness check

Protected Endpoints (JWT Required)

GET /api/users/me - Get user profile

Environment Configuration

Backend Environment Variables

# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017
DATABASE_NAME=normogen

# JWT Configuration
JWT_SECRET=<your-secret-key-minimum-32-characters>
JWT_ACCESS_TOKEN_EXPIRY_MINUTES=15
JWT_REFRESH_TOKEN_EXPIRY_DAYS=30

# Server Configuration
SERVER_HOST=127.0.0.1
SERVER_PORT=6800

See backend/.env.example for a complete template.

Repository Management

  • Git Hosting: Forgejo (self-hosted)
  • CI/CD: Forgejo Actions
  • Branch Strategy: main, develop, feature/*
  • Deployment: Docker Compose (homelab), Kubernetes (future)

Deployment

Backend Deployment (Production)

# Clone repository
git clone <forgejo-url> normogen
cd normogen/backend

# Setup configuration
cp .env.example .env
# Edit .env with production values

# Build and run with Docker Compose
docker compose up -d

# Check status
curl http://localhost:6800/health

Resource Limits (Homelab):

  • CPU: 1000m (1 core)
  • Memory: 1000Mi (1GB RAM)

Ports:

  • Backend API: 6800 (host) → 8000 (container)
  • MongoDB: 27017 (standard port)

Open Source

Normogen is open-source. Both server and client code will be publicly available.

Contributing

See thoughts/STATUS.md for current development progress and next steps.

License

[To be determined] NOTE: Output was 203 lines, showing only the last 100 lines.

docker compose logs -f backend


### Testing

```bash
# Run unit tests
cargo test

# Run integration tests (requires MongoDB)
cargo test --test auth_tests

# Manual testing with provided script
./thoughts/test_auth.sh

Backend API Endpoints

Public Endpoints (No Authentication)

POST /api/auth/register - User registration
POST /api/auth/login    - User login
POST /api/auth/refresh  - Token refresh (rotates tokens)
POST /api/auth/logout   - Logout (revokes token)
GET  /health            - Health check
GET  /ready             - Readiness check

Protected Endpoints (JWT Required)

GET /api/users/me - Get user profile

Environment Configuration

Backend Environment Variables

# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017
DATABASE_NAME=normogen

# JWT Configuration
JWT_SECRET=<your-secret-key-minimum-32-characters>
JWT_ACCESS_TOKEN_EXPIRY_MINUTES=15
JWT_REFRESH_TOKEN_EXPIRY_DAYS=30

# Server Configuration
SERVER_HOST=127.0.0.1
SERVER_PORT=6800

See backend/.env.example for a complete template.

Repository Management

  • Git Hosting: Forgejo (self-hosted)
  • CI/CD: Forgejo Actions
  • Branch Strategy: main, develop, feature/*
  • Deployment: Docker Compose (homelab), Kubernetes (future)

Deployment

Backend Deployment (Production)

# Clone repository
git clone <forgejo-url> normogen
cd normogen/backend

# Setup configuration
cp .env.example .env
# Edit .env with production values

# Build and run with Docker Compose
docker compose up -d

# Check status
curl http://localhost:6800/health

Resource Limits (Homelab):

  • CPU: 1000m (1 core)
  • Memory: 1000Mi (1GB RAM)

Ports:

  • Backend API: 6800 (host) → 8000 (container)
  • MongoDB: 27017 (standard port)

Open Source

Normogen is open-source. Both server and client code will be publicly available.

Contributing

See thoughts/STATUS.md for current development progress and next steps.

License

[To be determined]