| 55 | |
| 56 | |
| 57 | def _setup(settings: Settings): |
| 58 | print("=" * 40) |
| 59 | print("Settings:") |
| 60 | print("=" * 40) |
| 61 | for k, v in settings.__dict__.items(): |
| 62 | print(f"{k:>{20}}: {v}") |
| 63 | |
| 64 | variables = { |
| 65 | "HOSTNAME": settings.hostname, |
| 66 | "APP_HOSTNAME": settings.hostname, |
| 67 | "AUTH_HOSTNAME": settings.fief_hostname, |
| 68 | "FIEF_HOSTNAME": settings.fief_hostname, |
| 69 | "FIEF_DOMAIN": settings.fief_hostname, |
| 70 | "FIEF_MAIN_USER_PASSWORD": settings.fief_admin_password, |
| 71 | "ADMIN_EMAIL": settings.admin_email, |
| 72 | "FRONTEND_URL": f"http://{settings.hostname}", |
| 73 | "FIEF_URL": f"http://{settings.fief_hostname}", |
| 74 | "JWT_KEY": secrets.token_urlsafe(32), |
| 75 | } |
| 76 | if settings.run_fief: |
| 77 | variables["FIEF_CLIENT_ID"] = secrets.token_urlsafe(32) |
| 78 | variables["FIEF_CLIENT_SECRET"] = secrets.token_urlsafe(64) |
| 79 | db_password = secrets.token_urlsafe(32) |
| 80 | replace( |
| 81 | "./deploy/.env.fief.example", |
| 82 | "./deploy/.env.fief", |
| 83 | { |
| 84 | **variables, |
| 85 | "FIEF_MAIN_ADMIN_API_KEY": secrets.token_urlsafe(64), |
| 86 | "SECRET": secrets.token_urlsafe(64), |
| 87 | "DATABASE_PASSWORD": db_password, |
| 88 | "POSTGRES_PASSWORD": db_password, |
| 89 | }, |
| 90 | ) |
| 91 | |
| 92 | replace( |
| 93 | "./deploy/.env.example", |
| 94 | ".env", |
| 95 | { |
| 96 | **variables, |
| 97 | }, |
| 98 | ) |
| 99 | replace( |
| 100 | "./deploy/.env.example", |
| 101 | "./deploy/.env", |
| 102 | { |
| 103 | **variables, |
| 104 | }, |
| 105 | ) |
| 106 | replace( |
| 107 | "./deploy/.env.webapp.example", |
| 108 | "webapp/.env.development", |
| 109 | { |
| 110 | **variables, |
| 111 | "NEXT_PUBLIC_BASE_URL": f"http://{settings.hostname}", |
| 112 | "NEXT_PUBLIC_API_URL": f"http://{settings.hostname}/api", |
| 113 | "FIEF_BASE_URL": variables["FIEF_URL"], |
| 114 | }, |