docker-compose.yaml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. services:
  2. cert-gen:
  3. image: ras-certgen:latest
  4. volumes:
  5. - ./certs:/work/certs
  6. working_dir: /work/certs
  7. entrypoint: [ "/bin/sh", "-c" ]
  8. environment:
  9. - OSCAR_HOST=${OSCAR_HOST}
  10. command:
  11. - "openssl req -x509 -newkey rsa:${CERT_KEY_BITS:-2048}
  12. -keyout ca-key.pem
  13. -out ca.crt
  14. -sha256 -days 365 -nodes
  15. -subj \"/CN=Open OSCAR Server Root CA\"
  16. && openssl req -newkey rsa:${CERT_KEY_BITS:-2048}
  17. -keyout key.pem
  18. -out server.csr
  19. -sha256 -nodes
  20. -subj \"/CN=${OSCAR_HOST}\"
  21. && echo \"basicConstraints=critical,CA:FALSE\" > server.ext
  22. && echo \"keyUsage=critical,digitalSignature,keyEncipherment\" >> server.ext
  23. && echo \"extendedKeyUsage=serverAuth\" >> server.ext
  24. && echo \"subjectAltName=DNS:${OSCAR_HOST},DNS:api.oscar.aol.com,DNS:api.screenname.aol.com,DNS:login.oscar.aol.com,DNS:my.screenname.aol.com,DNS:api.aim.net\" >> server.ext
  25. && openssl x509 -req
  26. -in server.csr
  27. -CA ca.crt -CAkey ca-key.pem -CAcreateserial
  28. -out cert.pem
  29. -sha256 -days 365
  30. -extfile server.ext
  31. && cat cert.pem key.pem > server.pem
  32. && rm cert.pem key.pem ca-key.pem server.csr server.ext ca.srl"
  33. nss-gen:
  34. image: ras-certgen:latest
  35. volumes:
  36. - ./certs:/work/certs
  37. working_dir: /work/certs
  38. entrypoint: [ "/bin/sh", "-c" ]
  39. command:
  40. - "rm -rf nss
  41. && mkdir -p nss
  42. && certutil -N -d nss --empty-password
  43. && certutil -A -n \"Open OSCAR Server Root CA\" -t \"CT,,C\" -i ca.crt -d nss"
  44. open-oscar-server:
  45. image: ras:latest
  46. ports:
  47. - "5190:5190"
  48. - "8080:8080"
  49. - "9898:9898"
  50. - "1088:1088"
  51. - "4000:4000/udp"
  52. env_file:
  53. - ./config/ssl/settings.env
  54. volumes:
  55. - .:/project
  56. working_dir: /project
  57. nginx:
  58. image: ${NGINX_IMAGE:-ras-nginx:1.28.0-openssl-1.0.2u}
  59. # nginx resolves the upstream hostname at startup, so the server container
  60. # must exist first.
  61. depends_on:
  62. - open-oscar-server
  63. ports:
  64. - "80:80"
  65. - "443:443"
  66. - "5193:5193"
  67. volumes:
  68. - ./config/ssl/nginx.conf:/etc/nginx/nginx.conf:ro
  69. - ./certs:/etc/nginx/certs:ro
  70. - ${CLIENT_DIR:-./clients}:/srv/client:ro