X-Git-Url: https://git.mxchange.org/?p=friendica.git;a=blobdiff_plain;f=Vagrantfile;h=4f1181b8222fd1df6d448585a1af49e2c592e3e9;hp=755cf202b4fcd3ae0f57164203bc51909e9aa084;hb=HEAD;hpb=21b1e09fad40c846080d8c41d9e7621f0814d3b7 diff --git a/Vagrantfile b/Vagrantfile index 755cf202b4..f9ffe0c75e 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,263 +1,43 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : -# Config Github Settings -github_username = "fideloper" -github_repo = "Vaprobash" -github_branch = "1.0.0" -github_url = "https://raw.githubusercontent.com/#{github_username}/#{github_repo}/#{github_branch}" +server_ip = "192.168.22.10" +server_memory = "2048" # MB +server_timezone = "UTC" -# Server Configuration +public_folder = "/vagrant" -hostname = "vaprobash.dev" +Vagrant.configure(2) do |config| + # Set server to Debian 10 / Buster 64bit + config.vm.box = "debian/buster64" -# Set a local private network IP address. -# See http://en.wikipedia.org/wiki/Private_network for explanation -# You can use the following IP ranges: -# 10.0.0.1 - 10.255.255.254 -# 172.16.0.1 - 172.31.255.254 -# 192.168.0.1 - 192.168.255.254 -server_ip = "192.168.22.10" -server_memory = "384" # MB -server_swap = "768" # Options: false | int (MB) - Guideline: Between one or two times the server_memory -server_timezone = "UTC" - -# Database Configuration -mysql_root_password = "root" # We'll assume user "root" -mysql_version = "5.5" # Options: 5.5 | 5.6 -mysql_enable_remote = "false" # remote access enabled when true -pgsql_root_password = "root" # We'll assume user "root" - -# Languages and Packages6 -ruby_version = "latest" # Choose what ruby version should be installed (will also be the default version) -ruby_gems = [ # List any Ruby Gems that you want to install - #"jekyll", - #"sass", - #"compass", -] - -# To install HHVM instead of PHP, set this to "true" -hhvm = "false" - -# PHP Options -composer_packages = [ # List any global Composer packages that you want to install - #"phpunit/phpunit:4.0.*", - #"codeception/codeception=*", - #"phpspec/phpspec:2.0.*@dev", - #"squizlabs/php_codesniffer:1.5.*", -] - -# Default web server document root -# Symfony's public directory is assumed "web" -# Laravel's public directory is assumed "public" -public_folder = "/vagrant" - -laravel_root_folder = "/vagrant/laravel" # Where to install Laravel. Will `composer install` if a composer.json file exists -laravel_version = "latest-stable" # If you need a specific version of Laravel, set it here -symfony_root_folder = "/vagrant/symfony" # Where to install Symfony. - -nodejs_version = "latest" # By default "latest" will equal the latest stable version -nodejs_packages = [ # List any global NodeJS packages that you want to install - #"grunt-cli", - #"gulp", - #"bower", - #"yo", -] - -Vagrant.configure("2") do |config| - - # Set server to Ubuntu 14.04 - config.vm.box = "ubuntu/trusty64" + # 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 = true # Create a hostname, don't forget to put it to the `hosts` file # This will point to the server's default virtual host # TO DO: Make this work with virtualhost along-side xip.io URL - config.vm.hostname = hostname + config.vm.hostname = "friendica.local" # Create a static IP config.vm.network :private_network, ip: server_ip - # If using VirtualBox - config.vm.provider :virtualbox do |vb| - - # Set server memory - vb.customize ["modifyvm", :id, "--memory", server_memory] - - # Set the timesync threshold to 10 seconds, instead of the default 20 minutes. - # If the clock gets more than 15 minutes out of sync (due to your laptop going - # to sleep for instance, then some 3rd party services will reject requests. - vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000] - - # Prevent VMs running on Ubuntu to lose internet connection - vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] - vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] - - end - - # If using VMWare Fusion - config.vm.provider "vmware_fusion" do |vb, override| - override.vm.box_url = "http://files.vagrantup.com/precise64_vmware.box" - - # Set server memory - vb.vmx["memsize"] = server_memory - + # Share a folder between host and guest + # config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", owner: "www-data", group: "vagrant" + config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", owner: "www-data", group: "www-data" + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + 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 = server_memory end - # If using Vagrant-Cachier - # http://fgrehm.viewdocs.io/vagrant-cachier - if Vagrant.has_plugin?("vagrant-cachier") - # Configure cached packages to be shared between instances of the same base box. - # Usage docs: http://fgrehm.viewdocs.io/vagrant-cachier/usage - config.cache.scope = :box - - config.cache.synced_folder_opts = { - type: :nfs, - mount_options: ['rw', 'vers=3', 'tcp', 'nolock'] - } - end - - #### - # Base Items - ########## - - # Provision Base Packages - config.vm.provision "shell", path: "#{github_url}/scripts/base.sh", args: [github_url, server_swap] - - # Provision PHP - config.vm.provision "shell", path: "#{github_url}/scripts/php.sh", args: [server_timezone, hhvm] - - # Enable MSSQL for PHP - # config.vm.provision "shell", path: "#{github_url}/scripts/mssql.sh" - - # Provision Vim - # config.vm.provision "shell", path: "#{github_url}/scripts/vim.sh", args: github_url - - - #### - # Web Servers - ########## - - # Provision Apache Base - config.vm.provision "shell", path: "#{github_url}/scripts/apache.sh", args: [server_ip, public_folder, hostname, github_url] - - # Provision Nginx Base - # config.vm.provision "shell", path: "#{github_url}/scripts/nginx.sh", args: [server_ip, public_folder, hostname, github_url] - - - #### - # Databases - ########## - - # Provision MySQL - config.vm.provision "shell", path: "#{github_url}/scripts/mysql.sh", args: [mysql_root_password, mysql_version, mysql_enable_remote] - - # Provision PostgreSQL - # config.vm.provision "shell", path: "#{github_url}/scripts/pgsql.sh", args: pgsql_root_password - - # Provision SQLite - # config.vm.provision "shell", path: "#{github_url}/scripts/sqlite.sh" - - # Provision RethinkDB - # config.vm.provision "shell", path: "#{github_url}/scripts/rethinkdb.sh", args: pgsql_root_password - - # Provision Couchbase - # config.vm.provision "shell", path: "#{github_url}/scripts/couchbase.sh" - - # Provision CouchDB - # config.vm.provision "shell", path: "#{github_url}/scripts/couchdb.sh" - - # Provision MongoDB - # config.vm.provision "shell", path: "#{github_url}/scripts/mongodb.sh" - - # Provision MariaDB - # config.vm.provision "shell", path: "#{github_url}/scripts/mariadb.sh", args: [mysql_root_password, mysql_enable_remote] - - #### - # Search Servers - ########## - - # Install Elasticsearch - # config.vm.provision "shell", path: "#{github_url}/scripts/elasticsearch.sh" - - # Install SphinxSearch - # config.vm.provision "shell", path: "#{github_url}/scripts/sphinxsearch.sh" - - #### - # Search Server Administration (web-based) - ########## - - # Install ElasticHQ - # Admin for: Elasticsearch - # Works on: Apache2, Nginx - # config.vm.provision "shell", path: "#{github_url}/scripts/elastichq.sh" - - - #### - # In-Memory Stores - ########## - - # Install Memcached - # config.vm.provision "shell", path: "#{github_url}/scripts/memcached.sh" - - # Provision Redis (without journaling and persistence) - # config.vm.provision "shell", path: "#{github_url}/scripts/redis.sh" - - # Provision Redis (with journaling and persistence) - # config.vm.provision "shell", path: "#{github_url}/scripts/redis.sh", args: "persistent" - # NOTE: It is safe to run this to add persistence even if originally provisioned without persistence - - - #### - # Utility (queue) - ########## - - # Install Beanstalkd - # config.vm.provision "shell", path: "#{github_url}/scripts/beanstalkd.sh" - - # Install Heroku Toolbelt - # config.vm.provision "shell", path: "https://toolbelt.heroku.com/install-ubuntu.sh" - - # Install Supervisord - # config.vm.provision "shell", path: "#{github_url}/scripts/supervisord.sh" - - #### - # Additional Languages - ########## - - # Install Nodejs - # config.vm.provision "shell", path: "#{github_url}/scripts/nodejs.sh", privileged: false, args: nodejs_packages.unshift(nodejs_version, github_url) - - # Install Ruby Version Manager (RVM) - # config.vm.provision "shell", path: "#{github_url}/scripts/rvm.sh", privileged: false, args: ruby_gems.unshift(ruby_version) - - #### - # Frameworks and Tooling - ########## - - # Provision Composer - # config.vm.provision "shell", path: "#{github_url}/scripts/composer.sh", privileged: false, args: composer_packages.join(" ") - - # Provision Laravel - # config.vm.provision "shell", path: "#{github_url}/scripts/laravel.sh", privileged: false, args: [server_ip, laravel_root_folder, public_folder, laravel_version] - - # Provision Symfony - # config.vm.provision "shell", path: "#{github_url}/scripts/symfony.sh", privileged: false, args: [server_ip, symfony_root_folder, public_folder] - - # Install Screen - # config.vm.provision "shell", path: "#{github_url}/scripts/screen.sh" - - # Install config Mailcatcher - # config.vm.provision "shell", path: "#{github_url}/scripts/mailcatcher.sh" - - # Install git-ftp - # config.vm.provision "shell", path: "#{github_url}/scripts/git-ftp.sh", privileged: false - - #### - # Local Scripts - # Any local scripts you may want to run post-provisioning. - # Add these to the same directory as the Vagrantfile. - ########## - config.vm.provision "shell", path: "./util/vagrant_provision.sh" - config.vm.synced_folder "./", "/vagrant/", :owner=> 'www-data', :group=>'vagrant', :mount_options => ['dmode=775', 'fmode=775'] - + # Enable provisioning with a shell script. + config.vm.provision "shell", path: "./bin/dev/vagrant_provision.sh" + # run: "always" + # run: "once" end