setup.sh.dist 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/sh
  2. [ -f .env ] && echo "JUST DONT" && exit 1
  3. ## You can (should) customize those variables
  4. # the docker-compose project name
  5. export CHATONS_COMPOSE_PROJECT=oxyta
  6. # the host directory for the containers' volumes
  7. export CHATONS_ROOT_DIR=./srv
  8. # the domain name for all services
  9. export CHATONS_DOMAIN=oxyta.net
  10. # the email to which services will send important email
  11. export CHATONS_MAIL=services@$CHATONS_DOMAIN
  12. ## Those do not need customization
  13. export CHATONS_MYSQL_PASSWORD=$(openssl rand -base64 32)
  14. export CHATONS_MYSQL_ROOT_PASSWORD=$(openssl rand -base64 32)
  15. if [ ! -d "$CHATONS_ROOT_DIR" ]; then
  16. echo "error: $CHATONS_ROOT_DIR must exist and be a regular folder" >&2
  17. exit 1
  18. fi
  19. # Export common environment variables
  20. echo "COMPOSE_PROJECT_NAME=$CHATONS_COMPOSE_PROJECT" > .env
  21. echo "CHATONS_ROOT_DIR=$CHATONS_ROOT_DIR" >> .env
  22. echo "CHATONS_DOMAIN=$CHATONS_DOMAIN" >> .env
  23. echo "CHATONS_MAIL=$CHATONS_MAIL" >> .env
  24. # Export specific environment configuration
  25. mkdir -p cloud pad
  26. echo "MYSQL_PASSWORD=$CHATONS_MYSQL_PASSWORD" > cloud/.env
  27. echo "MYSQL_ROOT_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" >> cloud/.env
  28. echo "MYSQL_ROOT_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" > pad/.env
  29. echo "ETHERPAD_DB_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" >> pad/.env
  30. # Configure traefik
  31. mkdir -p "$CHATONS_ROOT_DIR/traefik"
  32. touch "$CHATONS_ROOT_DIR/traefik/acme.json"
  33. chmod 600 "$CHATONS_ROOT_DIR/traefik/acme.json"
  34. sed "s/###DOMAIN###/$CHATONS_DOMAIN/g" traefik/traefik.toml > "$CHATONS_ROOT_DIR/traefik/traefik.toml"