You can download the source code from GitHub and run the following command-line to launch the interactive installer :
- With npm :
yarn install
npm start
- With pm2 :
yarn install
cp ecosystem.config.example.js ecosystem.config.js
npm run start:pm2
You can also launch the project via Docker :
# create a network to link mongo and Aquila CMS
docker network create aquila
# create the mongo instance
docker run --name mongo -p 27017:27017 --network=aquila mongo
# pull the latest and run AquilaCMS
docker run -p 127.0.0.1:3010:3010/tcp --network=aquila --name aquila aquilacms/aquilacms
- You can just launch the AquilaCMS image without creating a network if you don't want to connect to a MongoDB launched via Docker
- If you change the port of the docker container, remember to use the correct
PORT
env variable.
To connect your AquilaCMS website to a Mongo database, you can :
- run a MongoDB image next to the AquilaCMS image like in the example above (and use this mongodb container as hostname :
mongodb://mongo:27017/
)- use an external link to, for example, an Atlas database
- use a localhost link to connect AquilaCMS to a database on your host machine (you have to edit your
mongod.conf
and change yourbindIp
by your network ip instead of127.0.0.1
)
At the first launch, you'll see an installation page. It allows you to create an env.json
file in the config folder.
You can edit this file manually, an example of the different possible properties is in the config/env.example.json
file.
You can also found all the properties in the documentation
If you want to have the installation page again, you can remove the env.json
file in the config/
folder.
The config/env.json file is created during the AquilaCMS installation phase, the various parameters it can take are present in the config/env.example.json. These parameters are:
encryption
corresponds to parameters used when passwords are encryptedjwt
has a few parameters to configure JWT creationssl
is used to enable https (and http2) API launchlogs
allows to configure log management:type
can take three parameters:console
,file
andgraylog
http
allows http request logs via Morganoverride
allows to replace all console.log and console.error with log functions from WinstonalertMails
enable the sending to admins of e-mails related to alerts raised by the system (for example, if it has been detected that an important cron has been deactivated)config
contains the fields for setting the parameters for sending logs to Graylog
devMode
has parameters used in development mode, such as non-compilation of the theme or global mail overloaddb
is the connection string to MongoDB
They are all under one parameter which corresponds to the AQUILA_ENV.
To start a silent installation, you need to set the following environment variables, then start aquila :
MONGODB_URI
: MongoDB URILANGUAGE
: Default language. "en" for English or "fr" for FrenchFIRSTNAME
: Administrator's firstnameLASTNAME
: Administrator's lastnameEMAIL
: Administrator's emailPASSWORD
: Administrator's password (if no password is entered, a random password will be created and shown only once in the server logs during installation)APPURL
: URL of the website (ie http://localhost:3010)ADMIN_PREFIX
: Admin subpath (ie : admin)SITENAME
: Website's name
You can define two environment variables inside AquilaCMS (you can copy .env.sample into a .env file).
NODE_ENV
: you should only limit values toproduction
,development
ortest
(See 'Non standard node env')AQUILA_ENV
: define the environment values in/config/env.json
to be loaded (See our documentation)
We recommend that you build the themes from the AquilaCMS backoffice. But if you want, to manually build a theme, you can execute this command in the theme folder :
npm run build