DEV Community

Cover image for Install and run Asgard CMS by docker stack
Naster Blue
Naster Blue

Posted on

3 2

Install and run Asgard CMS by docker stack

Introduction

We will install and run Asgard CMS by docker stack :

NGINX web server
MYSQL database
REDIS cache

System Requirements

docker
docker-compose

Directory Structure

+ asgardcms-docker <root directory>
  + laradock <docker stack>

1.Build Docker stack

1.0.Working directory : /laradock <docker stack>

➜  asgardcms-docker cd laradock 
➜  laradock git:(master)

1.1.Create .env

➜  laradock git:(master)cp env-example  .env

1.2.Then update mysql/nginx/redis configuration in .env

# Define the prefix of container names.
COMPOSE_PROJECT_NAME=asgardcms-laradock
# PHP version of the Workspace and PHP-FPM containers
# Accepted values: 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=7.3
### MYSQL #####
MYSQL_VERSION=latest
MYSQL_DATABASE=asgardcms
MYSQL_USER=asgardcms
MYSQL_PASSWORD=asgardcms
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=asgardcms

### REDIS #####
REDIS_PORT=6379

### NGINX #####
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000
NGINX_SSL_PATH=./nginx/ssl/

1.3.Run docker-compose

➜  laradock git:(master) ✗ docker-compose up -d nginx mysql redis laravel-horizon

1.4.Verify all done

➜  laradock git:(master) ✗ docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS                                 NAMES
acfe204292b1        asgardcms-laradock_nginx             "/bin/bash /opt/star…"   28 minutes ago      Up 28 minutes       81/tcp, 0.0.0.0:80->80/tcp, 443/tcp   asgardcms-laradock_nginx_1
6bbdcadef86b        asgardcms-laradock_php-fpm           "docker-php-entrypoi…"   28 minutes ago      Up 28 minutes       9000/tcp                              asgardcms-laradock_php-fpm_1
6848c2af2394        asgardcms-laradock_laravel-horizon   "/usr/bin/supervisor…"   28 minutes ago      Up 28 minutes                                             asgardcms-laradock_laravel-horizon_1
e2cdbc9b3784        asgardcms-laradock_workspace         "/sbin/my_init"          28 minutes ago      Up 28 minutes                                             asgardcms-laradock_workspace_1
f8373d74d46a        asgardcms-laradock_mysql             "docker-entrypoint.s…"   28 minutes ago      Up 28 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp     asgardcms-laradock_mysql_1
ab08ba38616f        asgardcms-laradock_redis             "docker-entrypoint.s…"   28 minutes ago      Up 28 minutes       0.0.0.0:6379->6379/tcp                asgardcms-laradock_redis_1
23868938380e        docker:19.03-dind                    "dockerd-entrypoint.…"   28 minutes ago      Up 28 minutes       2375-2376/tcp                         asgardcms-laradock_docker-in-docker_1

2.Install and run Asgard CMS

2.0.Working directory : asgardcms-docker <root directory>

➜  asgardcms-docker docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS                                 NAMES
acfe204292b1        asgardcms-laradock_nginx             "/bin/bash /opt/star…"   28 minutes ago      Up 28 minutes       81/tcp, 0.0.0.0:80->80/tcp, 443/tcp   asgardcms-laradock_nginx_1
6bbdcadef86b        asgardcms-laradock_php-fpm           "docker-php-entrypoi…"   28 minutes ago      Up 28 minutes       9000/tcp                              asgardcms-laradock_php-fpm_1
6848c2af2394        asgardcms-laradock_laravel-horizon   "/usr/bin/supervisor…"   28 minutes ago      Up 28 minutes                                             asgardcms-laradock_laravel-horizon_1
e2cdbc9b3784        asgardcms-laradock_workspace         "/sbin/my_init"          28 minutes ago      Up 28 minutes                                             asgardcms-laradock_workspace_1
f8373d74d46a        asgardcms-laradock_mysql             "docker-entrypoint.s…"   28 minutes ago      Up 28 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp     asgardcms-laradock_mysql_1
ab08ba38616f        asgardcms-laradock_redis             "docker-entrypoint.s…"   28 minutes ago      Up 28 minutes       0.0.0.0:6379->6379/tcp                asgardcms-laradock_redis_1
23868938380e        docker:19.03-dind                    "dockerd-entrypoint.…"   28 minutes ago      Up 28 minutes       2375-2376/tcp                         asgardcms-laradock_docker-in-docker_1

2.1.Enter the Workspace container, to execute commands

➜  asgardcms-docker docker exec  -it e2cdbc9b3784 bash
root@e2cdbc9b3784:/var/www# 

2.2.Install the Asgard CMS

➜  asgardcms-docker docker exec  -it e2cdbc9b3784 bash
root@e2cdbc9b3784:/var/www# php artisan asgard:install

  Welcome!                              
  Starting the installation process...  

Successfully created .env file

 Enter your database driver (e.g. mysql, pgsql) [mysql]:
 > mysql

 Enter your database host [127.0.0.1]:
 > mysql

 Enter your database port [3306]:
 > 3306

 Enter your database name [homestead]:
 > asgardcms

 Enter your database username [homestead]:
 > asgardcms

 Enter your database password (leave <none> for no password) [secret]:
 > asgardcms

Database successfully configured

 Enter you application url (e.g. http://localhost, http://dev.example.com) [http://localhost]:
 > http://localhost


  User Module                        
  Starting the User Module setup...  


 Enter your first name:
 > naster

 Enter your last name:
 > blue

 Enter your email address:
 > taipv.uit@gmail.com

 Enter a password:
 > 

 Please confirm your password:
 > 

Please wait while the admin account is configured...
The application is now installed
Platform ready! You can now login with your username and password at /backend

2.3 Configuration file .env need to be update too
From

REDIS_HOST=127.0.0.1

To

REDIS_HOST=redis

2.3 Open your browser and visit your localhost address. Happy hacking!
Login

Edit Admin Role

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

Top comments (0)