Skip to content

Commit 7f072a8

Browse files
author
Tom Softreck
committed
first draft
1 parent 163b7ea commit 7f072a8

21 files changed

+6745
-2
lines changed

.env.template

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
# PyDock Environment Configuration Template
2+
# Copy this file to .env and fill in your values
3+
4+
# ==============================================
5+
# CORE CONFIGURATION
6+
# ==============================================
7+
8+
# Project settings
9+
PYDOCK_PROJECT_NAME=my-pydock-project
10+
PYDOCK_ENVIRONMENT=development
11+
12+
# Domain and VPS settings
13+
PYDOCK_DOMAIN=example.com
14+
PYDOCK_VPS_IP=192.168.1.100
15+
PYDOCK_SSH_USER=root
16+
PYDOCK_SSH_KEY_PATH=~/.ssh/id_rsa
17+
PYDOCK_SSH_PASSWORD=
18+
19+
# ==============================================
20+
# API SERVER CONFIGURATION
21+
# ==============================================
22+
23+
# FastAPI server settings
24+
PYDOCK_API_HOST=0.0.0.0
25+
PYDOCK_API_PORT=8000
26+
PYDOCK_API_DEBUG=true
27+
PYDOCK_API_RELOAD=true
28+
29+
# API Security
30+
PYDOCK_API_SECRET_KEY=your-secret-key-here-change-this
31+
PYDOCK_API_ACCESS_TOKEN_EXPIRE_MINUTES=30
32+
PYDOCK_API_ALLOWED_ORIGINS=["http://localhost:3000", "http://localhost:8080"]
33+
34+
# ==============================================
35+
# CLOUDFLARE INTEGRATION
36+
# ==============================================
37+
38+
# Cloudflare API credentials
39+
CLOUDFLARE_API_TOKEN=your-cloudflare-api-token
40+
CLOUDFLARE_EMAIL=[email protected]
41+
CLOUDFLARE_ZONE_ID=your-zone-id
42+
43+
# DNS settings
44+
CLOUDFLARE_AUTO_DNS=true
45+
CLOUDFLARE_PROXY_ENABLED=true
46+
CLOUDFLARE_TTL=300
47+
48+
# ==============================================
49+
# DATABASE SETTINGS
50+
# ==============================================
51+
52+
# Database configuration for deployments
53+
DATABASE_URL=postgresql://admin:password@database:5432/pydock
54+
REDIS_URL=redis://redis:6379/0
55+
56+
# Database passwords (auto-generated if empty)
57+
DB_PASSWORD=
58+
REDIS_PASSWORD=
59+
60+
# ==============================================
61+
# DOCKER SETTINGS
62+
# ==============================================
63+
64+
# Docker configuration
65+
DOCKER_REGISTRY=
66+
DOCKER_USERNAME=
67+
DOCKER_PASSWORD=
68+
DOCKER_BUILD_ARGS=
69+
70+
# Container settings
71+
CONTAINER_RESTART_POLICY=unless-stopped
72+
CONTAINER_MEMORY_LIMIT=512m
73+
CONTAINER_CPU_LIMIT=1.0
74+
75+
# ==============================================
76+
# SSL/TLS CONFIGURATION
77+
# ==============================================
78+
79+
# SSL settings
80+
81+
SSL_STAGING=false
82+
SSL_AUTO_HTTPS=true
83+
84+
# Certificate settings
85+
CERT_RESOLVER=letsencrypt
86+
CERT_STORAGE=/data/caddy
87+
88+
# ==============================================
89+
# MONITORING & LOGGING
90+
# ==============================================
91+
92+
# Logging configuration
93+
LOG_LEVEL=INFO
94+
LOG_FORMAT=json
95+
LOG_FILE=/var/log/pydock/app.log
96+
97+
# Monitoring
98+
MONITORING_ENABLED=true
99+
METRICS_PORT=9090
100+
HEALTH_CHECK_INTERVAL=30
101+
102+
# ==============================================
103+
# NOTIFICATIONS
104+
# ==============================================
105+
106+
# Slack notifications
107+
SLACK_WEBHOOK_URL=
108+
SLACK_CHANNEL=#deployments
109+
110+
# Email notifications
111+
SMTP_HOST=smtp.gmail.com
112+
SMTP_PORT=587
113+
SMTP_USERNAME=
114+
SMTP_PASSWORD=
115+
NOTIFICATION_EMAIL=
116+
117+
# ==============================================
118+
# BACKUP SETTINGS
119+
# ==============================================
120+
121+
# Backup configuration
122+
BACKUP_ENABLED=true
123+
BACKUP_SCHEDULE=0 2 * * *
124+
BACKUP_RETENTION_DAYS=30
125+
BACKUP_S3_BUCKET=
126+
AWS_ACCESS_KEY_ID=
127+
AWS_SECRET_ACCESS_KEY=
128+
129+
# ==============================================
130+
# DEVELOPMENT SETTINGS
131+
# ==============================================
132+
133+
# Development tools
134+
HOT_RELOAD=true
135+
DEBUG_MODE=true
136+
PROFILING_ENABLED=false
137+
138+
# Testing
139+
TEST_DATABASE_URL=postgresql://test:test@localhost:5433/pydock_test
140+
TEST_CLOUDFLARE_ZONE_ID=test-zone-id
141+
142+
# ==============================================
143+
# ADVANCED SETTINGS
144+
# ==============================================
145+
146+
# Rate limiting
147+
RATE_LIMIT_ENABLED=true
148+
RATE_LIMIT_REQUESTS=100
149+
RATE_LIMIT_WINDOW=60
150+
151+
# Cache settings
152+
CACHE_TTL=3600
153+
CACHE_BACKEND=redis
154+
155+
# Worker settings
156+
WORKER_PROCESSES=4
157+
WORKER_TIMEOUT=30
158+
159+
# Security headers
160+
SECURITY_HEADERS_ENABLED=true
161+
CORS_ENABLED=true
162+
163+
# ==============================================
164+
# FEATURE FLAGS
165+
# ==============================================
166+
167+
# Feature toggles
168+
FEATURE_WEBSOCKET_LOGS=true
169+
FEATURE_AUTO_SCALING=false
170+
FEATURE_BLUE_GREEN_DEPLOY=false
171+
FEATURE_ROLLBACK=true
172+
FEATURE_HEALTH_CHECKS=true

.gitignore

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,191 @@ cython_debug/
160160
# and can be added to the global gitignore or merged into this file. For a more nuclear
161161
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
162162
#.idea/
163+
164+
# Byte-compiled / optimized / DLL files
165+
__pycache__/
166+
*.py[cod]
167+
*$py.class
168+
169+
# C extensions
170+
*.so
171+
172+
# Distribution / packaging
173+
.Python
174+
build/
175+
develop-eggs/
176+
dist/
177+
downloads/
178+
eggs/
179+
.eggs/
180+
lib/
181+
lib64/
182+
parts/
183+
sdist/
184+
var/
185+
wheels/
186+
pip-wheel-metadata/
187+
share/python-wheels/
188+
*.egg-info/
189+
.installed.cfg
190+
*.egg
191+
MANIFEST
192+
193+
# PyInstaller
194+
# Usually these files are written by a python script from a template
195+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
196+
*.manifest
197+
*.spec
198+
199+
# Installer logs
200+
pip-log.txt
201+
pip-delete-this-directory.txt
202+
203+
# Unit test / coverage reports
204+
htmlcov/
205+
.tox/
206+
.nox/
207+
.coverage
208+
.coverage.*
209+
.cache
210+
nosetests.xml
211+
coverage.xml
212+
*.cover
213+
*.py,cover
214+
.hypothesis/
215+
.pytest_cache/
216+
217+
# Translations
218+
*.mo
219+
*.pot
220+
221+
# Django stuff:
222+
*.log
223+
local_settings.py
224+
db.sqlite3
225+
db.sqlite3-journal
226+
227+
# Flask stuff:
228+
instance/
229+
.webassets-cache
230+
231+
# Scrapy stuff:
232+
.scrapy
233+
234+
# Sphinx documentation
235+
docs/_build/
236+
237+
# PyBuilder
238+
target/
239+
240+
# Jupyter Notebook
241+
.ipynb_checkpoints
242+
243+
# IPython
244+
profile_default/
245+
ipython_config.py
246+
247+
# pyenv
248+
.python-version
249+
250+
# pipenv
251+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
252+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
253+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
254+
# install all needed dependencies.
255+
#Pipfile.lock
256+
257+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
258+
__pypackages__/
259+
260+
# Celery stuff
261+
celerybeat-schedule
262+
celerybeat.pid
263+
264+
# SageMath parsed files
265+
*.sage.py
266+
267+
# Environments
268+
.env
269+
.env.local
270+
.env.production
271+
.env.staging
272+
.env.test
273+
.venv
274+
env/
275+
venv/
276+
ENV/
277+
env.bak/
278+
venv.bak/
279+
280+
# Spyder project settings
281+
.spyderproject
282+
.spyproject
283+
284+
# Rope project settings
285+
.ropeproject
286+
287+
# mkdocs documentation
288+
/site
289+
290+
# mypy
291+
.mypy_cache/
292+
.dmypy.json
293+
dmypy.json
294+
295+
# Pyre type checker
296+
.pyre/
297+
298+
# PyDock specific
299+
pydock.json
300+
pydock-*.json
301+
.pydock/
302+
deployments/
303+
backups/
304+
logs/
305+
*.pid
306+
307+
# Docker
308+
.docker/
309+
docker-compose.override.yml
310+
Dockerfile.prod
311+
Caddyfile.prod
312+
313+
# IDE
314+
.vscode/
315+
.idea/
316+
*.swp
317+
*.swo
318+
*~
319+
320+
# OS
321+
.DS_Store
322+
.DS_Store?
323+
._*
324+
.Spotlight-V100
325+
.Trashes
326+
ehthumbs.db
327+
Thumbs.db
328+
329+
# Temporary files
330+
*.tmp
331+
*.temp
332+
.temp/
333+
334+
# SSH keys
335+
*.pem
336+
*.key
337+
id_rsa*
338+
id_ed25519*
339+
340+
# Cloudflare
341+
cloudflare-*.json
342+
343+
# Node.js (for web components)
344+
node_modules/
345+
npm-debug.log*
346+
yarn-debug.log*
347+
yarn-error.log*
348+
349+
# Poetry
350+
poetry.lock

0 commit comments

Comments
 (0)