2 changed files with 124 additions and 0 deletions
@ -0,0 +1,123 @@ |
|||||||
|
[Easy!Appointments - Self Hosted Appointment Scheduler by alextselegidis](https://github.com/alextselegidis/easyappointments) |
||||||
|
|
||||||
|
### Minimum File Structure |
||||||
|
``` |
||||||
|
/home/ |
||||||
|
└── ~/ |
||||||
|
└── docker/ |
||||||
|
└── easyappointments/ |
||||||
|
└── docker/ |
||||||
|
``` |
||||||
|
|
||||||
|
The file structure here is slightly different from usual since we will be cloning a git repository to install this. Below are the steps needed to fully deploy easyappointments with our Caddy reverse proxy! |
||||||
|
|
||||||
|
### 1. Clone repository and optionally check out the develop branch |
||||||
|
``` |
||||||
|
cd ~/docker/ |
||||||
|
git clone https://github.com/alextselegidis/easyappointments.git |
||||||
|
git checkout -b develop |
||||||
|
``` |
||||||
|
|
||||||
|
### 2. Navigate to cloned repository folder and copy composer.json and composer.lock to ./docker/server |
||||||
|
``` |
||||||
|
cd easyappointments |
||||||
|
cp composer.lock docker/server |
||||||
|
cp composer.json docker/server |
||||||
|
``` |
||||||
|
|
||||||
|
### 3. Copy config-sample.php to config.php in the root repository and modify BASE_URL in config.php |
||||||
|
``` |
||||||
|
cp config-sample.php config.php |
||||||
|
nano config.php |
||||||
|
``` |
||||||
|
|
||||||
|
### 4. Modify permissions of the storage folder in the repository |
||||||
|
``` |
||||||
|
chown -R www-data:www-data storage/ |
||||||
|
chmod -R 777 storage/ |
||||||
|
``` |
||||||
|
|
||||||
|
### 5. Modify the Dockerfile in ./docker/server from the root repository |
||||||
|
``` |
||||||
|
nano docker/server/Dockerfile |
||||||
|
``` |
||||||
|
**Dockerfile** |
||||||
|
``` |
||||||
|
FROM php:7.4-apache |
||||||
|
|
||||||
|
ENV COMPOSER_ALLOW_SUPERUSER=1 |
||||||
|
|
||||||
|
COPY --from=composer /usr/bin/composer /usr/bin/composer |
||||||
|
WORKDIR "/var/www/html" |
||||||
|
|
||||||
|
COPY composer.json /var/www/html/ |
||||||
|
COPY composer.lock /var/www/html/ |
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y zip unzip git libpng-dev |
||||||
|
|
||||||
|
RUN docker-php-ext-install gd |
||||||
|
|
||||||
|
RUN composer install --no-scripts --no-interaction --optimize-autoloader |
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive |
||||||
|
|
||||||
|
RUN apt-get install -y \ |
||||||
|
libfreetype6-dev \ |
||||||
|
libjpeg62-turbo-dev \ |
||||||
|
libpng-dev \ |
||||||
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ |
||||||
|
&& docker-php-ext-install -j$(nproc) gd gettext mysqli pdo_mysql |
||||||
|
|
||||||
|
RUN pecl install xdebug \ |
||||||
|
&& docker-php-ext-enable xdebug |
||||||
|
|
||||||
|
RUN a2enmod rewrite |
||||||
|
``` |
||||||
|
|
||||||
|
6. Modify docker-compose inside ./docker/ folder of the root repository |
||||||
|
**docker-compose.yml** |
||||||
|
``` |
||||||
|
|
||||||
|
version: "3.1" |
||||||
|
services: |
||||||
|
mysql: |
||||||
|
image: mysql:5.7 |
||||||
|
container_name: easyappointments-database |
||||||
|
volumes: |
||||||
|
- ./mysql:/var/lib/mysql |
||||||
|
environment: |
||||||
|
- MYSQL_ROOT_PASSWORD=root |
||||||
|
- MYSQL_DATABASE=easyappointments |
||||||
|
# ports: |
||||||
|
# - "8001:3306" |
||||||
|
server: |
||||||
|
build: ./server |
||||||
|
image: easyappointments-server:v1 |
||||||
|
container_name: easyappointments-server |
||||||
|
# ports: |
||||||
|
# - "8000:80" |
||||||
|
volumes: |
||||||
|
- ../:/var/www/html |
||||||
|
- /var/www/html/vendor |
||||||
|
- ./server/php.ini:/usr/local/etc/php/conf.d/99-overrides.ini |
||||||
|
|
||||||
|
networks: |
||||||
|
default: |
||||||
|
external: |
||||||
|
name: caddy_net |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
### 7. Add to Caddyfile (from ~/docker/caddy) |
||||||
|
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile. |
||||||
|
``` |
||||||
|
appointments.example.com { |
||||||
|
reverse_proxy easyappointments-server:80 |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
### 8. Deploy Application |
||||||
|
``` |
||||||
|
cd ~/docker/easyappointments/docker/ |
||||||
|
docker-compose up -d |
||||||
|
``` |
||||||
Loading…
Reference in new issue