8 Commits
Author SHA1 Message Date
john-okeefe bac84e24ec docs(env): document DB_PORT, SERVER_PORT, BASE_URL, COOKIE_SECURE, IMAGE_TAG in .env.example
Expose the recently-added env-driven compose settings as commented examples so self-hosters and deployers can discover them. All remain optional with defaults.
2026-07-29 16:12:21 -04:00
john-okeefe 540fb147d2 feat(config): add TZ environment variable for container timezone
Adds TZ env var to docker-compose.yml app service (defaults to UTC)
and documents it in .env.example. This ensures the Go runtime's
time.Local is set correctly inside the container for any server-side
time operations that don't use an explicit timezone.
2026-04-29 20:33:13 -04:00
john-okeefe d1a8a62c08 docs: update password generation to use hex encoding
Change openssl rand commands from base64 to hex encoding to avoid
special characters that break URL parsing in database connection strings.

- JWT_SECRET: openssl rand -hex 32
- DBPASS: openssl rand -hex 16

Updated in:
- .env.example
- README.md
- docs/contributing/DEVELOPMENT.md
- docs/operations/troubleshooting.md
2026-02-02 20:13:05 -05:00
john-okeefe 7d1fc546a8 config: move operational defaults to docker-compose.yml
- Add conversion service configuration with sensible defaults
  - BOOKHOARD_CONVERSION_CACHE_DIR: /app/cache/kepub
  - BOOKHOARD_CONVERSION_TOOL: /usr/bin/kepubify
  - BOOKHOARD_CONVERSION_CACHE_TTL: 24h
  - Add named volume for conversion cache
- Add rate limiting configuration with defaults
  - TEST_MODE: false
  - RATE_LIMIT_ENABLED: true
  - REQUESTS_PER_MINUTE: 10
- Simplify .env.example to only required secrets (JWT_SECRET, DBPASS)
- Add section comments to docker-compose.yml for better organization
- Document optional overrides in .env.example comments

This change separates secrets (in .env) from operational configuration
(in docker-compose.yml), following security best practices while
maintaining flexibility for custom deployments.
2026-02-01 17:34:00 -05:00
john-okeefe 033271d267 Update project configuration for Bookhoard organization rename
Phase 1 of Gitea repository migration:
- Rename docker containers: bookmann_db → bookhoard_db, bookmann → bookhoard
- Update database name: bookmann → bookhoard
- Rename environment variables: BOOKMANN_* → BOOKHOARD_*
- Update documentation references to new project name

This prepares the codebase for migration to Bookhoard organization.
2026-02-01 16:10:29 -05:00
john-okeefe ec5a961f6c feat(conversion): add EPUB to KEPUB conversion service with kepubify
- Install kepubify binary in Dockerfile for on-the-fly conversion
- Add conversion service with caching layer (24hr TTL)
- Support KEPUB downloads through OPDS endpoint
- Cache converted files to reduce processing overhead
- Add environment configuration for cache directory and tool path
2026-02-01 12:15:28 -05:00
john-okeefe f48013f80d test: add test tooling and documentation
- Add Makefile with convenient test targets (test, test-integration, test-env-up, test-env-down)
- Add .env.test with test-specific configuration
- Update .env.example with test configuration options and warnings
- Update README.md with comprehensive testing documentation
- Document all environment variables with safety warnings

This makes it easy to run tests without rate limiting issues while
keeping production security intact.
2026-01-29 13:33:38 -05:00
john-okeefe 44bb829790 docs: add environment setup instructions
- Add .env.example file with template for secure configuration
- Update Quick Start section with detailed environment setup
- Provide both .env file and docker-compose variable methods
- Add security notes and password generation commands
- Document default database credentials with security warning
- Include instructions for generating secure JWT secrets and passwords
2026-01-25 00:09:46 -05:00