Skip to content

Commit cadff8a

Browse files
Merge pull request #10 from CarterPerez-dev/go-backend-template
add go backend with chi, restructure, add ios app template with react…
2 parents 907bccb + e5fc70c commit cadff8a

File tree

485 files changed

+44239
-12483
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

485 files changed

+44239
-12483
lines changed

.gitignore

Lines changed: 104 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
1-
# AngelaMos | 2025
2-
# dev.compose.yml
1+
# =============================================================================
2+
# AngelaMos | 2026
3+
# .gitignore
4+
# =============================================================================
35

4-
venv
5-
*.venv
6-
*.env
7-
*.cache
8-
*.egg
6+
# =============================================================================
7+
# Environment files (keep .example files)
8+
# =============================================================================
9+
.env
10+
.env.local
11+
.env.development
12+
.env.production
13+
.env.*.local
14+
!.env.example
915

16+
# =============================================================================
17+
# Python
18+
# =============================================================================
1019
__pycache__/
1120
*.py[cod]
1221
*$py.class
@@ -26,14 +35,102 @@ wheels/
2635
*.egg-info/
2736
.installed.cfg
2837
*.egg
38+
.venv/
39+
venv/
40+
*.venv
2941

42+
# Python tooling
3043
.pytest_cache/
3144
.coverage
3245
htmlcov/
3346
.tox/
3447
.mypy_cache/
3548
.dmypy.json
3649
dmypy.json
50+
.ruff_cache/
51+
52+
# =============================================================================
53+
# Node.js / JavaScript
54+
# =============================================================================
55+
node_modules/
56+
npm-debug.log*
57+
yarn-debug.log*
58+
yarn-error.log*
59+
pnpm-debug.log*
60+
lerna-debug.log*
61+
.pnpm-store/
62+
63+
# Build outputs
64+
dist/
65+
dist-ssr/
66+
*.local
67+
.vite/
3768

69+
# =============================================================================
70+
# Go
71+
# =============================================================================
72+
bin/
73+
*.exe
74+
*.exe~
75+
*.dll
76+
*.dylib
77+
*.test
78+
coverage.out
79+
coverage.html
80+
tmp/
81+
vendor/
82+
__debug_bin*
83+
84+
# Go keys (sensitive)
85+
keys/*.pem
86+
keys/*.key
87+
88+
# =============================================================================
89+
# iOS / React Native
90+
# =============================================================================
91+
.expo/
92+
web-build/
93+
expo-env.d.ts
94+
.kotlin/
95+
*.orig.*
96+
*.jks
97+
*.p8
98+
*.p12
99+
*.key
100+
*.mobileprovision
101+
.metro-health-check*
102+
*.tsbuildinfo
103+
/ios
104+
/android
105+
106+
# =============================================================================
107+
# IDEs and Editors
108+
# =============================================================================
109+
.idea/
110+
.vscode/*
111+
!.vscode/extensions.json
112+
*.swp
113+
*.swo
114+
*~
115+
*.suo
116+
*.ntvs*
117+
*.njsproj
118+
*.sln
119+
*.sw?
120+
121+
# =============================================================================
122+
# OS Files
123+
# =============================================================================
38124
.DS_Store
125+
Thumbs.db
126+
*.pem
127+
128+
# =============================================================================
129+
# Docker
130+
# =============================================================================
131+
*.log
39132

133+
# =============================================================================
134+
# Misc
135+
# =============================================================================
136+
*.cache

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
©AngelaMos | 2025 | CarterPerez-dev
3+
©AngelaMos | 2026 | CarterPerez-dev
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.rst

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,25 @@
11
===========================================
2-
Fullstack Template: FastAPI + React + Nginx
2+
Fullstack Templates Collection
33
===========================================
44

5-
*Production-ready Docker setup with TypeScript and SCSS*
5+
*Production-ready stack templates with TypeScript, SCSS, and modern backends*
6+
7+
Available Templates
8+
===================
9+
10+
**Default Stack: FastAPI + React**
11+
Full-stack web application with Python FastAPI backend and React 19 frontend.
12+
Uses ``compose.yml`` and ``dev.compose.yml``.
13+
14+
**Go-Chi Stack: Go + React**
15+
Full-stack web application with Go Chi backend and React 19 frontend.
16+
Uses ``compose.go.yml`` and ``dev.compose.go.yml``.
17+
Backend located in ``alternate-backends/go-chi/``.
18+
19+
**iOS Mobile: Expo + React Native**
20+
Mobile application using Expo and React Native.
21+
Located in ``mobile/ios-expo/``.
22+
Connects to any backend via API (no Docker required).
623

724
----
825

@@ -63,10 +80,24 @@ This will:
6380
Next Steps
6481
----------
6582

83+
**For FastAPI + React (Default)**
84+
6685
1. Edit ``.env`` with your configuration
67-
2. Start development: ``just dev-up``
86+
2. Start development: ``just dev-up`` or ``docker compose -f dev.compose.yml up``
6887
3. After creating models: ``just migration-local "initial"`` then ``just migrate-local head``
6988

89+
**For Go-Chi + React**
90+
91+
1. Edit ``.env`` with your configuration
92+
2. Start development: ``docker compose -f dev.compose.go.yml up``
93+
3. Production: ``docker compose -f compose.go.yml up``
94+
95+
**For iOS Expo App**
96+
97+
1. Navigate to ``mobile/ios-expo/``
98+
2. Follow the iOS-specific README for Expo setup
99+
3. Configure API endpoint to connect to your backend
100+
70101
Run ``just`` to see all available commands.
71102

72103
----

backends/fastapi/.env.example

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# =============================================================================
2+
# AngelaMos | 2026
3+
# .env.example
4+
# =============================================================================
5+
# Standalone FastAPI Backend
6+
# Copy to .env for production, .env.development for dev
7+
# Production (*00 ports) and development (*01 ports) can run simultaneously
8+
# =============================================================================
9+
10+
# =============================================================================
11+
# HOST PORTS
12+
# =============================================================================
13+
API_HOST_PORT=8500
14+
POSTGRES_HOST_PORT=5500
15+
REDIS_HOST_PORT=6500
16+
17+
# =============================================================================
18+
# Application
19+
# =============================================================================
20+
APP_NAME=FastAPI-API
21+
APP_VERSION=1.0.0
22+
ENVIRONMENT=production
23+
DEBUG=false
24+
25+
# =============================================================================
26+
# Server (internal container settings)
27+
# =============================================================================
28+
HOST=0.0.0.0
29+
PORT=8000
30+
RELOAD=false
31+
32+
# =============================================================================
33+
# PostgreSQL
34+
# =============================================================================
35+
POSTGRES_USER=postgres
36+
POSTGRES_PASSWORD=CHANGE_ME_IN_PRODUCTION
37+
POSTGRES_DB=app_db
38+
POSTGRES_HOST=db
39+
POSTGRES_CONTAINER_PORT=5432
40+
41+
DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_CONTAINER_PORT}/${POSTGRES_DB}
42+
43+
DB_POOL_SIZE=20
44+
DB_MAX_OVERFLOW=10
45+
DB_POOL_TIMEOUT=30
46+
DB_POOL_RECYCLE=1800
47+
48+
# =============================================================================
49+
# Redis
50+
# =============================================================================
51+
REDIS_HOST=redis
52+
REDIS_CONTAINER_PORT=6379
53+
REDIS_PASSWORD=CHANGE_ME_IN_PRODUCTION
54+
55+
REDIS_URL=redis://${REDIS_HOST}:${REDIS_CONTAINER_PORT}
56+
57+
# =============================================================================
58+
# Security / JWT
59+
# =============================================================================
60+
SECRET_KEY=CHANGE_ME_GENERATE_WITH_openssl_rand_base64_32
61+
62+
JWT_ALGORITHM=HS256
63+
ACCESS_TOKEN_EXPIRE_MINUTES=15
64+
REFRESH_TOKEN_EXPIRE_DAYS=7
65+
66+
# =============================================================================
67+
# Admin Bootstrap (optional)
68+
# =============================================================================
69+
ADMIN_EMAIL=
70+
71+
# =============================================================================
72+
# Rate Limiting
73+
# =============================================================================
74+
RATE_LIMIT_DEFAULT=100/minute
75+
RATE_LIMIT_AUTH=20/minute
76+
77+
# =============================================================================
78+
# Logging
79+
# =============================================================================
80+
LOG_LEVEL=INFO
81+
LOG_JSON_FORMAT=true
82+
83+
# =============================================================================
84+
# Cloudflare Tunnel (for cloudflared.compose.yml)
85+
# =============================================================================
86+
CLOUDFLARE_TUNNEL_TOKEN=YOUR_TUNNEL_TOKEN_HERE

backend/alembic/versions/20251224_033104_initial.py renamed to backends/fastapi/alembic/versions/20251224_033104_initial.py

File renamed without changes.

0 commit comments

Comments
 (0)