Repository navigation
Expand file tree
/
Copy pathforge.toml
More file actions
76 lines (66 loc) · 3.05 KB
/
Copy pathforge.toml
File metadata and controls
76 lines (66 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Forge — ready-to-use LOCAL DEV configuration.
#
# The server loads ./forge.toml automatically (override the path with
# $FORGE_CONFIG). Values match docker-compose.yml (Postgres on :5432,
# versitygw S3 on :8422). Any key can be overridden by an environment
# variable using DOUBLE-underscore nesting, e.g.:
# FORGE_SERVER__BIND=0.0.0.0:8080
# FORGE_AUTH__TRUSTED_PROXY_CIDRS=[10.0.0.0/8]
#
# ⚠️ Dev credentials only — do NOT use these in production. In prod, point
# $FORGE_CONFIG at a real file (or use FORGE_* env vars) with real secrets.
[server]
bind = "0.0.0.0:8421"
# Used to build absolute NuGet V3 @id URLs in the service index. No trailing slash.
public_base_url = "http://localhost:8421"
# DEV ONLY: this file ships the known-insecure placeholder credentials below
# (bootstrap admin@example.com/changeme, minioadmin S3 keys). Without this
# opt-in the server refuses to start with them. Never set it in production.
allow_insecure_defaults = true
[database]
# docker-compose maps the dev Postgres to host port 5433 (see docker-compose.yml).
url = "postgres://forge:forge@localhost:5433/forge"
[s3]
endpoint = "http://localhost:8422"
region = "us-east-1"
bucket = "forge"
access_key = "minioadmin"
secret_key = "minioadmin"
force_path_style = true # required for versitygw / MinIO
# multipart_threshold = 8388608 # 8 MiB (default)
# Secret encryption at rest (required): the root key comes from FORGE_ROOT_KEY.
# DEV ONLY: `cargo xtask run` / `dev` export a fixed development key there
# unless it is set (the one docker-compose.app.yml sets too). A real
# deployment generates its own (`openssl rand -base64 32`).
[crypto.root]
provider = "env"
[auth]
# Anonymous access, the login screen, passwords over HTTP Basic, the session
# lifetimes and the login lockout are not set here: they are auth settings,
# changed in the web UI (Admin → Settings) or through /admin/settings/auth.
# A new install starts with anonymous access and password Basic off;
# `cargo xtask seed` turns both on for local development.
# CIDRs of reverse proxies whose X-Forwarded-For header is trusted.
trusted_proxy_cidrs = []
# First-run admin, created automatically if no admin user exists yet.
[auth.bootstrap_admin]
# A UPN (local-part@domain), as every account is named (default
# admin@example.com).
username = "admin@example.com"
password = "changeme"
# ── Optional ───────────────────────────────────────────────────────────────
# Redis L2 cache + cross-instance invalidation backplane. Omit for L1-only.
# [redis]
# url = "redis://localhost:6379"
# [cache]
# l1_max_capacity = 10000
# default_ttl_seconds = 30
# [outbox]
# batch_size = 100
# grace_seconds = 3600 # delay before a dereferenced blob is deleted from S3
# poll_interval_seconds = 10
# Static SPA serving. The Rust server always serves the built TanStack Start UI
# from `assets_dir` (single origin, no Node proxy); `assets_dir` defaults to
# `web/dist`.
# [web]
# assets_dir = "web/dist"