env: centralize env loading to repo root; add .env.example; compose uses env_file
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
colin 2025-08-27 19:01:52 -04:00
parent 874e0a69ae
commit 6e2ab1a63d
6 changed files with 33 additions and 4 deletions

16
.env.example Normal file
View File

@ -0,0 +1,16 @@
# Copy to .env and fill in values
# Google API key for generative model extraction
GOOGLE_API_KEY=
# Flask / App settings (optional overrides)
APP_ENV=development
APP_VERSION=0.4.0
# Database (if used via environment)
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_DB=ploughshares
POSTGRES_USER=ploughshares
POSTGRES_PASSWORD=ploughshares_password

View File

@ -49,6 +49,7 @@ This project uses Woodpecker CI for continuous integration and deployment. The p
- `docker-compose.yml` - Default configuration for quick setup - `docker-compose.yml` - Default configuration for quick setup
- `docker-compose.dev.yml` - Development configuration with live reloading - `docker-compose.dev.yml` - Development configuration with live reloading
- `.env` - Environment variables (copy from `.env.example`)
- `stack.production.yml` - Production deployment with Docker Swarm - `stack.production.yml` - Production deployment with Docker Swarm
- `stack.staging.yml` - Staging deployment with Docker Swarm - `stack.staging.yml` - Staging deployment with Docker Swarm
- `.woodpecker.yml` - CI/CD pipeline configuration - `.woodpecker.yml` - CI/CD pipeline configuration

View File

@ -2,6 +2,8 @@ version: '3.8'
services: services:
app: app:
env_file:
- .env
build: build:
context: ./docker/ploughshares context: ./docker/ploughshares
dockerfile: Dockerfile dockerfile: Dockerfile
@ -49,6 +51,8 @@ services:
restart: unless-stopped restart: unless-stopped
crawler_google_alerts: crawler_google_alerts:
env_file:
- .env
build: build:
context: ./docker/crawler-google-alerts context: ./docker/crawler-google-alerts
image: ploughshares-crawler-google-alerts:dev image: ploughshares-crawler-google-alerts:dev
@ -63,6 +67,8 @@ services:
restart: unless-stopped restart: unless-stopped
crawler_marketline: crawler_marketline:
env_file:
- .env
build: build:
context: ./docker/crawler context: ./docker/crawler
image: ploughshares-crawler-marketline:dev image: ploughshares-crawler-marketline:dev

View File

@ -1,5 +1,7 @@
services: services:
app: app:
env_file:
- .env
build: build:
context: ./docker/ploughshares context: ./docker/ploughshares
platforms: platforms:
@ -41,6 +43,8 @@ services:
restart: unless-stopped restart: unless-stopped
crawler_google_alerts: crawler_google_alerts:
env_file:
- .env
build: build:
context: ./docker/crawler-google-alerts context: ./docker/crawler-google-alerts
image: ploughshares-crawler-google-alerts:latest image: ploughshares-crawler-google-alerts:latest
@ -53,6 +57,8 @@ services:
restart: unless-stopped restart: unless-stopped
crawler_marketline: crawler_marketline:
env_file:
- .env
build: build:
context: ./docker/crawler context: ./docker/crawler
image: ploughshares-crawler-marketline:latest image: ploughshares-crawler-marketline:latest

View File

@ -5,11 +5,11 @@ import json
import os import os
import re import re
import time import time
from dotenv import load_dotenv from dotenv import load_dotenv, find_dotenv
import requests import requests
from get_all_feed_contents import get_all_feed_contents from get_all_feed_contents import get_all_feed_contents
load_dotenv() load_dotenv(find_dotenv())
GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY") GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY")

View File

@ -15,9 +15,9 @@ import json
import os import os
import re import re
import time import time
from dotenv import load_dotenv from dotenv import load_dotenv, find_dotenv
load_dotenv() load_dotenv(find_dotenv())
GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY") GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY")