Comments

Latest Posts

Create Your Own Bookmarks Navigation Website based Github WebStack-Laravel Project

WebStack-Laravel

An open source navigation website project with a complete front and back design, which you can use it to make your own favorite navigation website.








Demo site: https://webstack.cc/
Github site: https://github.com/hui-ho/WebStack-Laravel    (FrontEnd + BackEnd)
Github site: https://github.com/WebStackPage/WebStackPage.github.io       (FrontEnd)
Docker Hub : https://hub.docker.com/r/arvon2014/webstack-laravel




Docker Deployment - Environment

You will need to install Docker and Docker Compose first. Get system update & upgrade it as well. It is also your choice to have portainer installed to manage your Dockers. 

Please check post: https://blog.51sec.org/2021/05/docker-dockercompose-portainer-nginx.html

If your host environment memory is less than 1GB, you might also want to add 1024MB swap file size using following command:
wget https://raw.githubusercontent.com/51sec/swap/main/swap.sh && bash swap.sh





Docker Deployment Steps - Docker Compose

Two files will need to created from Github project:


Docker Deployment from Github page: https://github.com/Gourds/WebStackLaravel

Two files are required to be created in the same folder on your Docker host:
  • entrypoint.sh
#!/bin/sh

cd ${INSTALL_DIR}
sed -i -e "s/DB_HOST=.*/DB_HOST=${DB_HOST}/; \
            s/DB_PORT=.*/DB_PORT=${DB_PORT}/; \
            s/DB_DATABASE=.*/DB_DATABASE=${DB_DATABASE}/; \
            s/DB_USERNAME=.*/DB_USERNAME=${DB_USERNAME}/; \
            s/DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/" .env 
sed -i "/login-captcha/{n;s/'enable.*/'enable' => ${LOGIN_COPTCHA}/}"  config/admin.php


##php artisan key:generate
if [ $# -eq 1 ];then
    if [ $1 == 'serve' ];then
        php artisan serve --host=0.0.0.0 --port=8000
    elif [ $1 == 'new-server' ];then
        php artisan key:generate
        result=1
        while [ $result -ne 0 ];do
            php artisan migrate:refresh --seed
            result=$?
            sleep 3
        done
        php artisan serve --host=0.0.0.0 --port=8000
    elif [ $1 == 'regresh' ];then
        php artisan migrate:refresh --seed
    elif [ $1 == 'generate' ];then
        php artisan key:generate
    fi
else
    echo "Usage: $0  serve|regresh|generate"
fi
  • docker-compose.yml

version: '3'

services:
  db:
    image: mysql/mysql-server:5.6
    restart: always
    container_name: "mysql_wsl"
    environment:
      MYSQL_ROOT_PASSWORD: Tym8zrnNRpz4
      MYSQL_DATABASE: webstack
      MYSQL_USER: webstack
      MYSQL_PASSWORD: Xym8zrnNRpz
    command: --default-authentication-plugin=mysql_native_password
    networks:
      - "webstacknet"
  redis:
    image: redis:3
    container_name: "redis_wsl"
    restart: always
    networks:
      - "webstacknet"
  webstack:
    image: arvon2014/webstack-laravel:v1.2.1
    container_name: "wsl"
    ports:
      - 8000:8000
    depends_on:
      - "db"
      - "redis"
    environment:
      LOGIN_COPTCHA: "false"
      DB_HOST: db
      DB_PORT: 3306
      DB_DATABASE: webstack
      DB_USERNAME: webstack
      DB_PASSWORD: Xym8zrnNRpz
    command: ['/entrypoint.sh','new-server']
    networks:
      - "webstacknet"
networks:
  webstacknet:
    driver: bridge

From your docker host folder, run followingcommand:

docker-compose up
If you need to log into container's console, using following command :

docker exec -it <mycontainer> bash 

or 

docker exec -it <mycontainer> sh

Frontend Usage




[[email protected] ~]# curl https://ip.51sec.org/api
13.14.10.226

http://13.14.10.226:8000



Backend Usage - Admin

http://13.14.10.226:8000/admin

Both username and password is admin.

After you logged in, you can change the password and manage user's access. 



References

  • https://github.com/Gourds/WebStackLaravel



No comments