Install on Linux Server (Advanced)
Following documents are for the installation of Bookings ONE onto the Linux Server.
- Linux environment that support Docker, while most of the Linux distributions (such as Redhat, CentOS, Ubuntu, Oracle Linux, etc..) will support Docker.
- Install Docker Engine based on the Linux OS of your environment, you may follow the official Guideline .
- Install Docker Compose. You should choose linux Standalone binary on the Linux OS, you may follow the official Guideline.
- MySQL 8 or above
- a Valid SSL Certificate
Setup Procedure
To confirm if Docker Engine is installed correctly, use command sudo docker images
To confirm if Docker Compose is installed successfully, use command sudo docker-compose version
Making docker auto start when the server restart will make the maintenance easier, use following command (Reference)
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
- Put the Bookings ONE Server image
bookings-one.tar
into the folder/bookings-one
Bookings ONE Server image do not have direct download link. If you want to have the Bookings ONE Server Image for installation, Please contact ONES Software
- Save the following script into
/bookings-one/docker-compose.yml
version: '3.1'
services:
bookings-one:
image: ones-software/bookings-one:latest
restart: always
volumes:
- /bookings-one:/etc/bookings-one
environment:
BackgroundJob__TimeZone: 'Asia/Hong_Kong'
File__BaseDirectory: '/etc/bookings-one/upload-files'
Logging__ErrorLog__FileLogDirectory: '/etc/bookings-one/error-logs/error-logs-{Date}.txt'
Logging__InfoLog__FileLogDirectory: '/etc/bookings-one/info-logs/info-logs-{Date}.txt'
Logging__DbLog__FileLogDirectory: '/etc/bookings-one/db-logs/db-logs-{Date}.txt'
WebPush__PrivateKey: WEB_PUSH_PRIVATE_KEY
WebPush__PublicKey: WEB_PUSH_PUBLIC_KEY
Architecture__Database: 'Mysql'
ConnectionStrings__MainDatabase: 'Server=DATABASE_SERVER_ADDRESS;Port=3306;Database=Bookings.ONE;Uid=DATABASE_USERNAME;Pwd=DATABASE_PASSWORD;Allow User Variables=true'
ASPNETCORE_URLS: 'https://+;http://+'
ASPNETCORE_HTTPS_PORT: 443
ASPNETCORE_Kestrel__Certificates__Default__Password: CERTIFICATE_PASSWORD
ASPNETCORE_Kestrel__Certificates__Default__Path: '/etc/bookings-one/certificate/bookings-one.pfx'
ports:
- 443:443
- Modify the
docker-compose.yml
:- Replace the
DATABASE_SERVER_ADDRESS
,DATABASE_USERNAME
andDATABASE_PASSWORD
to your Database connection stringIf your Mysql are running on the same server as the Docker, you have to set DATABASE_SERVER_ADDRESS
ashost.docker.internal,1433
- Replace the
WEB_PUSH_PRIVATE_KEY
andWEB_PUSH_PUBLIC_KEY
to your key pair. This key are VAPID key, your may generate by yourselves or using some online key generators - Replace the
CERTIFICATE_PASSWORD
to your certificate password
- Replace the
- Put the certificate file to
/bookings-one/certificate/
, the certificate name must bebookings-one.pfx
- Open Terminal, go to folder
/bookings-one
- Load the latest Bookings ONE Server image: run command
sudo docker load --input ./bookings-one.tar
- Start Bookings ONE: run command
sudo docker-compose up -d
- Now you can access the Bookings One console by
https://localhost
Following is a sample docker-compose.yml
for your reference
version: '3.1'
services:
bookings-one:
image: ones-software/bookings-one:latest
restart: always
volumes:
- /c/bookings-one:/etc/bookings-one
environment:
BackgroundJob__TimeZone: 'Asia/Hong_Kong'
File__BaseDirectory: '/etc/bookings-one/upload-files'
Logging__ErrorLog__FileLogDirectory: '/etc/bookings-one/error-logs/error-logs-{Date}.txt'
Logging__InfoLog__FileLogDirectory: '/etc/bookings-one/info-logs/info-logs-{Date}.txt'
Logging__DbLog__FileLogDirectory: '/etc/bookings-one/db-logs/db-logs-{Date}.txt'
WebPush__PublicKey: 'BJszfqip7Ii_lKSXCd_ZZJXT5FeQwJCZx79mLpr3nY8_rvRzSBLuaTx5dOp4rQZtzI511UvoyRXIwPoZ4_PALFA'
WebPush__PrivateKey: 'C-RkwJZGooRiI0CGNwAmShlaSWsh4SRNkol-ni5LGAk'
Architecture__Database: 'Mysql'
ConnectionStrings__MainDatabase: 'Server=host.docker.internal;Port=3306;Database=Bookings.ONE; ASPNETCORE_URLS: 'https://+;http://+'
ASPNETCORE_HTTPS_PORT: 443
ASPNETCORE_Kestrel__Certificates__Default__Password: Password1234
ASPNETCORE_Kestrel__Certificates__Default__Path: '/etc/bookings-one/certificate/bookings-one.pfx'
ports:
- 443:443
Update Bookings ONE Server
- Download the latest Bookings ONE Server image into
/bookings-one
- Open PowerShell in
/bookings-one
- Stop Bookings ONE: run command
docker-compose down
- Load the latest Bookings ONE Server image: run command
docker load --input ./bookings-one.tar
- Update and start Bookings ONE: run command
docker-compose up
It is not necessary to put the images in folder /bookings-one
, any drives or folders are workable.
If you want to move to other folder, replace the '/bookings-one' with your target folder (e.g. /users/machine/bookings-one)
If you need to config host table / share drive for the server, you may find the instruction in here