From 26c769972eb6e8d0db98c4a792ac0330eebd70ef Mon Sep 17 00:00:00 2001 From: Dave Smith-Hayes Date: Mon, 4 Nov 2024 22:44:00 -0500 Subject: [PATCH] Add some Vagrantfile stuff for dev, and maybe deployment? --- .gitignore | 1 + Vagrantfile | 66 +++++++++++++++++++++++++++++++ app/composer.json | 3 +- app/templates/channel/create.twig | 2 +- deploy/php/Dockerfile | 16 -------- dev/provision.sh | 23 +++++++++++ docker-compose.yml | 23 ----------- 7 files changed, 93 insertions(+), 41 deletions(-) create mode 100644 Vagrantfile delete mode 100644 deploy/php/Dockerfile create mode 100644 dev/provision.sh delete mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore index 9d8f37d..5626832 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea +.vagrant app/node_modules app/vendor app/.env diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..1394525 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,66 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.box = "generic/debian12" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.100.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + config.vm.synced_folder "./app", "/var/www/slovocast" + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the + # documentation for more information about their specific syntax and use. + # config.vm.provision "shell", inline: <<-SHELL + # apt-get update + # apt-get install -y apache2 + # SHELL +end diff --git a/app/composer.json b/app/composer.json index f013e29..89c30fc 100644 --- a/app/composer.json +++ b/app/composer.json @@ -36,6 +36,7 @@ }, "scripts": { "test": "./vendor/bin/phpunit tests --display-warnings", - "phinx": "./vendor/bin/phinx" + "phinx": "./vendor/bin/phinx", + "server": "php ./server/server.php" } } diff --git a/app/templates/channel/create.twig b/app/templates/channel/create.twig index d914423..fa02648 100644 --- a/app/templates/channel/create.twig +++ b/app/templates/channel/create.twig @@ -21,7 +21,7 @@
- +
diff --git a/deploy/php/Dockerfile b/deploy/php/Dockerfile deleted file mode 100644 index ab51ed8..0000000 --- a/deploy/php/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -ARG PHP_VERSION=8.3 - -FROM chialab/php:${PHP_VERSION} -WORKDIR /app -COPY app . -RUN composer install \ - --ignore-platform-reqs \ - --no-interaction \ - --no-plugins \ - --prefer-dist \ - --no-progress \ - --optimize-autoloader - -EXPOSE 8000 - -CMD [ "php", "server/server.php" ] diff --git a/dev/provision.sh b/dev/provision.sh new file mode 100644 index 0000000..b9cd016 --- /dev/null +++ b/dev/provision.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +## Upgrade the packages +apt-get update && sudo apt-get upgrade -y + +## Add the packages required for install PHP +apt-get -y install software-properties-common \ + ca-certificates \ + lsb-release \ + apt-transport-https + +sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add - + +apt-get update +apt-get install -y php8.3-fpm \ + php8.3-common \ + php8.3-mbstring \ + php8.3-pdo \ + nginx + +systemctl restart php-fpm +systemctl restart nginx diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 8884647..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3.9' - -services: - database: - image: mariadb:latest - environment: - MARIADB_DATABASE: "slovocast" - MARIADB_USER: "slovocast" - MARIADB_PASSWORD: "Password01" - MARIADB_ROOT_PASSWORD: "Password01" - ports: - - "3306:3306" - volumes: - - slovocast_db:/var/lib/mysql/data/ - app: - build: - context: . - dockerfile: deploy/php/Dockerfile - ports: - - "8000:8000" - -volumes: - slovocast_db: