Date: Easy!Appointments - Self Hosted Appointment Scheduler
docker pull library/node
docker run -d --name easyappointments -p 80:80 --restart always node:22-alpine
podman run -d --name easyappointments -p 80:80 --restart always node:22-alpine
skopeo inspect docker://docker.io/library/node:22-alpine
oras pull node:22-alpine
docker compose up -d
services:
php-fpm:
build: docker/php-fpm
working_dir: /var/www/html
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- '.:/var/www/html'
- './docker/php-fpm/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini'
nginx:
image: 'nginx:1.23.3-alpine'
working_dir: /var/www/html
volumes:
- '.:/var/www/html'
- './docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf'
ports:
- '${NGINX_PORT:-80}:80'
node:
image: 'node:22-alpine'
user: '${DOCKER_UID:-1000}:${DOCKER_GID:-1000}'
working_dir: /var/www/html
command: sh -c "npm install && npm start"
volumes:
- '.:/var/www/html'
mysql:
image: 'mysql:8.0'
volumes:
- './docker/mysql:/var/lib/mysql'
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=easyappointments
- MYSQL_USER=user
- MYSQL_PASSWORD=password
ports:
- '${MYSQL_PORT:-3306}:3306'
phpmyadmin:
image: 'phpmyadmin:5.2.1'
ports:
- '${PHPMYADMIN_PORT:-8080}:80'
environment:
- 'PMA_HOST=mysql'
- 'UPLOAD_LIMIT=102400K'
mailpit:
image: 'axllent/mailpit:v1.7'
ports:
- '${MAILPIT_HTTP_PORT:-8025}:8025'
- '${MAILPIT_SMTP_PORT:-1025}:1025'
swagger-ui:
platform: linux/amd64
image: swaggerapi/swagger-ui:v5.10.5
ports:
- '${SWAGGER_UI_PORT:-8000}:8080'
volumes:
- ./openapi.yml:/usr/share/nginx/html/openapi.yml
environment:
API_URL: openapi.yml
baikal:
image: ckulka/baikal:0.10.1-apache
ports:
- '${BAIKAL_PORT:-8100}:80'
volumes:
- ./docker/baikal:/var/www/html
- ./docker/baikal/config:/var/www/baikal/config
- ./docker/baikal/data:/var/www/baikal/Specific
openldap:
image: osixia/openldap:1.5.0
hostname: openldap
ports:
- '${OPENLDAP_PORT:-389}:389'
- '${OPENLDAP_SSL_PORT:-636}:636'
volumes:
- ./docker/openldap/certificates:/container/service/slapd/assets/certs
- ./docker/openldap/slapd/database:/var/lib/ldap
- ./docker/openldap/slapd/config:/etc/ldap/slapd.d
environment:
- LDAP_ORGANISATION=example
- LDAP_DOMAIN=example.org
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=admin
- LDAP_CONFIG_PASSWORD=config_pass
- 'LDAP_BASE_DN=dc=example,dc=org'
- LDAP_READONLY_USER=true
- LDAP_READONLY_USER_USERNAME=user
- LDAP_READONLY_USER_PASSWORD=password
phpldapadmin:
image: osixia/phpldapadmin:0.9.0
hostname: phpldapadmin
ports:
- '${PHPLDAPADMIN_PORT:-8200}:80'
environment:
- PHPLDAPADMIN_LDAP_HOSTS=openldap
- PHPLDAPADMIN_HTTPS=false
depends_on:
- openldap