Ctrl K
ComunidadGuías…

Vagrantfile

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "debian/contrib-stretch64"

  # Map HTTP port to port 8080 on host machine to make web server available as http://localhost:8080/
  # 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"

  packages = []

  # Install script/install.sh dependencies
  packages += %w[
    carton
    cpanminus
    fontconfig
    gcc
    ghostscript
    git
    graphicsmagick
    imagemagick
    make
    rsync
    shared-mime-info
    unzip
    xapian-tools
  ]

  packages << "nginx"

  packages += %w[cgit fcgiwrap]

  # Install TeX Live
  packages += %w[
    texlive-base
    texlive-fonts-recommended
    texlive-generic-recommended
    texlive-lang-all
    texlive-latex-base
    texlive-latex-extra
    texlive-latex-recommended
    texlive-luatex
    texlive-xetex
  ]

  # Install fonts
  packages += %w[
    fonts-cmu
    fonts-dejavu
    fonts-hosny-amiri
    fonts-linuxlibertine
    fonts-lmodern
    fonts-sil-charis
    fonts-sil-gentium
    fonts-sil-gentium-basic
    fonts-sil-scheherazade
    fonts-texgyre
    lmodern
  ]

  # Perl module compilation dependencies
  packages += %w[
    g++
    libssl-dev
    libxapian-dev
    libxml2-dev
    libexpat1-dev
  ]

  # Install Imager module dependencies
  packages += %w[
    libjpeg-dev
    libpng-dev
  ]

  # Install gettext required by /vagrant/script/upgrade_i18n
  packages << "gettext"

  # Install dependencies via APT
  config.vm.provision "apt", type: "shell", privileged: false, inline: <<-SHELL
    set -e

    sudo apt-get update
    sudo apt-get install --no-install-recommends --no-install-suggests -y #{packages.join(' ')}
  SHELL

  # Configure Amusewiki
  config.vm.provision "amusewiki-configure", type: "shell", privileged: false, inline: <<-SHELL
    set -e

    cd /vagrant

    cp dbic.yaml.sqlite.example dbic.yaml

    script/install.sh
    carton exec script/configure.sh localhost
    carton exec script/amusewiki-generate-nginx-conf | sudo /bin/sh

    carton exec script/generate-systemd-unit-files ./var/tmp/systemd
    sudo cp -v ./var/tmp/systemd/* /etc/systemd/system/
    sudo chown root:root /etc/systemd/system/amusewiki-*
    sudo chmod 664 /etc/systemd/system/amusewiki-*

    # It is impossible to create socket on VirtualBox filesystem.
    # Move it to home as a workaround.
    sudo sed -i 's|unix:/vagrant/var/amw.sock|unix:/home/vagrant/amw.sock|' /etc/nginx/amusewiki_include
    sudo sed -i 's|/vagrant/var/amw.sock|/home/vagrant/amw.sock|' /etc/systemd/system/amusewiki-web.service

    # Don't enable amusewiki-cgit here, because it is already started on port 9015 in /etc/nginx/sites-enabled/amusewiki
    sudo systemctl enable --now amusewiki-jobber amusewiki-web
    sudo systemctl restart nginx
  SHELL

  config.vm.hostname = 'amusewiki'

  config.vm.post_up_message = <<~MESSAGE
    Amusewiki is running at http://localhost:8080/

    To change default password:
      $ vagrant ssh
      vagrant@amusewiki:~$ cd /vagrant/
      vagrant@amusewiki:~$ carton exec script/amusewiki-reset-password amusewiki

    Run tests with:
      vagrant@amusewiki:~$ carton exec prove -l
  MESSAGE
end