# -*- mode: ruby -*-# vi: set ft=ruby :# Install tmux, virtualenv, and mariadb-server to support development$preProvision= <<SCRIPT# Prevent attempt to access stdin, causing dpkg-reconfigure error outputexport DEBIAN_FRONTEND=noninteractiveapt-get install -y tmux virtualenvwrapper# As per instructions at https://downloads.mariadb.org/mariadb/repositoriesapt-get install -y software-properties-commonapt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 2>&1add-apt-repository -y 'deb [arch=amd64,arm64,i386,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu xenial main'apt-get updateapt-get install -y mariadb-serverSCRIPT# Wrap provisioning script with a virutalenv for pip packages$provision= <<SCRIPTsource /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.shmkvirtualenv ctfdworkon ctfdcd /vagrant./prepare.shpip install -r development.txtecho "Initialising database"commands="CREATE DATABASE ctfd;CREATE USER 'ctfduser'@'localhost' IDENTIFIED BY 'ctfd';GRANT USAGE ON *.* TO 'ctfduser'@'localhost' IDENTIFIED BY 'ctfd';GRANT ALL privileges ON ctfd.* TO 'ctfduser'@'localhost';FLUSH PRIVILEGES;"echo "${commands}" | sudo /usr/bin/mysql -u root -pctfdSCRIPT# Start development server in a tmux session$startServer= <<SCRIPTsource /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.shworkon ctfdexport DATABASE_URL="mysql+pymysql://ctfduser:ctfd@localhost/ctfd"cd /vagrantpython manage.py db upgradeecho "Starting CTFd"tmux new-session -d -n "ctfd" -c "/vagrant" -s "ctfd" "gunicorn --bind 0.0.0.0:8000 -w 4 'CTFd:create_app()'"SCRIPTVagrant.configure("2") do |config|config.vm.box = "bento/ubuntu-16.04"# Create a private network, which allows host-only access to the machineconfig.vm.network "private_network", ip: "10.9.8.7"# Forward the default port for the development server (4000)# and docker or gunicorn (8000) to host machineconfig.vm.network "forwarded_port", guest: 4000, host: 4000config.vm.network "forwarded_port", guest: 8000, host: 8000# Pre-provisionconfig.vm.provision "shell", inline: $preProvision# Provisioning scriptsconfig.vm.provision "shell", inline: $provision, privileged: false# Start server in tmux session (every reboot)config.vm.provision "shell", inline: $startServer, privileged: false,run: "always"# Install docker (convenience)config.vm.provision "shell", path: "scripts/install_docker.sh", privileged: falseend
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。