* feat(docker): build and use client and api images * feat: always use .env dotenv fails without throwing if the .env file is missing and never overwrites variables if they already exist. As such, we can use it in build pipelines. * fix: remove quotes from env vars dotenv normalises quoted and unquoted strings (X=x, X='x' and X="x") all become the same .env object {X: 'x'}. However, Docker's env_file does not (the three cases are distinct). As a result, we should use unquoted strings for consistency. * fix: provide custom warning when .env is missing * feat(docker): include client-config * fix(docker): remove build packages from api image * fix(docker): run script from correct dir * fix(docker): correct permissions and dests * fix(docker): consolidate run steps This is standard practice, but did not have a noticable affect on the image size * fix(docker): clean the npm cache Prior to this step the image was 1.11GB uncompressed and we got a modest saving, 1.09GB after. * refactor(docker): regexless COPY directives * feat(docker): use alpine This shrinks the image down to 259MB * fix(docker): update build scripts * fix: correct the server Dockerfile RUNs * DEBUG: expose mysql port for seeding * chore: update client Dockerfile's node versions * fix: remove executable permissions from index.js It's not a cli, so I don't think it needs to be executable. * chore: update node and remove stale comments * feat: use ENTRYPOINT + CMD to allow runtime config * fix: add CURRICULUM_LOCALE arg * feat: allow client port configuration * feat: allow api port to be configured * refactor: use unique variable names for ports * fix: add default CLIENT_PORT * refactor: clean up
76 lines
1.8 KiB
Bash
76 lines
1.8 KiB
Bash
# ---------------------
|
|
# API
|
|
# ---------------------
|
|
|
|
# Database
|
|
MONGOHQ_URL=mongodb://localhost:27017/freecodecamp
|
|
|
|
# Logging
|
|
SENTRY_DSN=dsn_from_sentry_dashboard
|
|
SENTRY_ENVIRONMENT=staging
|
|
|
|
# Auth0 - OAuth 2.0 Credentials
|
|
AUTH0_CLIENT_ID=client_id_from_auth0_dashboard
|
|
AUTH0_CLIENT_SECRET=client_secret_from_auth0_dashboard
|
|
AUTH0_DOMAIN=example.auth0.com
|
|
|
|
# Session, Cookie and JWT encryption strings
|
|
SESSION_SECRET=a_session_secret
|
|
COOKIE_SECRET=a_cookie_secret
|
|
JWT_SECRET=a_jwt_secret
|
|
|
|
# ---------------------
|
|
# Search
|
|
# ---------------------
|
|
|
|
# Client Search Bar
|
|
ALGOLIA_APP_ID=app_id_from_algolia_dashboard
|
|
ALGOLIA_API_KEY=api_key_from_algolia_dashboard
|
|
|
|
# ---------------------
|
|
# Donations
|
|
# ---------------------
|
|
|
|
# Stripe
|
|
STRIPE_CREATE_PLANS=true
|
|
STRIPE_PUBLIC_KEY=pk_from_stripe_dashboard
|
|
STRIPE_SECRET_KEY=sk_from_stripe_dashboard
|
|
|
|
# PayPal
|
|
PAYPAL_CLIENT_ID=id_from_paypal_dashboard
|
|
PAYPAL_SECRET=secret_from_paypal_dashboard
|
|
PAYPAL_VERIFY_WEBHOOK_URL=https://api.sandbox.paypal.com/v1/notifications/verify-webhook-signature
|
|
PAYPAL_API_TOKEN_URL=https://api.sandbox.paypal.com/v1/oauth2/token
|
|
PAYPAL_WEBHOOK_ID=webhook_id_from_paypal_dashboard
|
|
|
|
# ---------------------
|
|
# Build variants
|
|
# ---------------------
|
|
DEPLOYMENT_ENV=staging
|
|
FREECODECAMP_NODE_ENV=development
|
|
|
|
# Languages to build
|
|
CLIENT_LOCALE=english
|
|
CURRICULUM_LOCALE=english
|
|
|
|
# Show or hide WIP in progress challenges
|
|
SHOW_UPCOMING_CHANGES=false
|
|
|
|
# Application paths
|
|
HOME_LOCATION=http://localhost:8000
|
|
API_LOCATION=http://localhost:3000
|
|
FORUM_LOCATION=https://forum.freecodecamp.org
|
|
NEWS_LOCATION=https://www.freecodecamp.org/news
|
|
RADIO_LOCATION=https://coderadio.freecodecamp.org
|
|
|
|
# ---------------------
|
|
# Debugging Mode Keys
|
|
# ---------------------
|
|
|
|
PEER=stuff
|
|
DEBUG=true
|
|
LOCAL_MOCK_AUTH=true
|
|
|
|
# Webhook proxy url from smee.io for PayPal
|
|
WEBHOOK_PROXY_URL=
|