├── README.md ├── ansible-lab ├── app01 │ ├── .vagrant │ │ ├── bundler │ │ │ └── global.sol │ │ ├── machines │ │ │ └── default │ │ │ │ └── virtualbox │ │ │ │ ├── action_provision │ │ │ │ ├── action_set_name │ │ │ │ ├── box_meta │ │ │ │ ├── creator_uid │ │ │ │ ├── id │ │ │ │ ├── index_uuid │ │ │ │ ├── private_key │ │ │ │ ├── synced_folders │ │ │ │ └── vagrant_cwd │ │ └── rgloader │ │ │ └── loader.rb │ ├── Vagrantfile │ ├── easy-notes-1.0.0.jar │ └── provision.sh ├── control-node │ ├── .vagrant │ │ ├── bundler │ │ │ └── global.sol │ │ ├── machines │ │ │ └── default │ │ │ │ └── virtualbox │ │ │ │ ├── action_provision │ │ │ │ ├── action_set_name │ │ │ │ ├── box_meta │ │ │ │ ├── creator_uid │ │ │ │ ├── id │ │ │ │ ├── index_uuid │ │ │ │ ├── private_key │ │ │ │ ├── synced_folders │ │ │ │ └── vagrant_cwd │ │ └── rgloader │ │ │ └── loader.rb │ ├── Vagrantfile │ ├── note.json │ ├── playbooks │ │ ├── app.yml │ │ ├── db.yaml │ │ ├── roles │ │ │ └── configuracao-default-so │ │ │ │ └── main.yml │ │ ├── templates │ │ │ ├── application.properties │ │ │ └── etc │ │ │ │ └── systemd │ │ │ │ └── system │ │ │ │ └── notes.service │ │ └── vars │ │ │ └── main.yml │ └── provision.sh └── db01 │ ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb │ ├── Vagrantfile │ └── provision.sh ├── lab-docker ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Dockerfile ├── DockerfileStage ├── Vagrantfile ├── application.properties ├── docker-compose.zip ├── docker-compose │ ├── Dockerfile │ ├── docker-compose.yml │ ├── index.js │ └── package.json ├── easy-notes-1.0.0.jar ├── node-app │ ├── Dockerfile │ ├── index.js │ └── package.json └── provision.sh ├── lab-jenkins ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Vagrantfile └── provision.sh ├── lab-k3s ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Vagrantfile ├── redis-app.yaml └── redis.yaml ├── lab-prometheus ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Vagrantfile ├── node_exporter-1.3.0.linux-amd64.tar.gz ├── prometheus.yml └── provision.sh ├── lab-sonarqube ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ └── default │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Vagrantfile ├── node-app │ ├── Dockerfile │ ├── index.js │ └── package.json └── provision.sh ├── lab-swarm ├── .vagrant │ ├── bundler │ │ └── global.sol │ ├── machines │ │ ├── manager │ │ │ └── virtualbox │ │ │ │ ├── action_provision │ │ │ │ ├── action_set_name │ │ │ │ ├── box_meta │ │ │ │ ├── creator_uid │ │ │ │ ├── id │ │ │ │ ├── index_uuid │ │ │ │ ├── private_key │ │ │ │ ├── synced_folders │ │ │ │ └── vagrant_cwd │ │ ├── worker1 │ │ │ └── virtualbox │ │ │ │ ├── action_provision │ │ │ │ ├── action_set_name │ │ │ │ ├── box_meta │ │ │ │ ├── creator_uid │ │ │ │ ├── id │ │ │ │ ├── index_uuid │ │ │ │ ├── private_key │ │ │ │ ├── synced_folders │ │ │ │ └── vagrant_cwd │ │ └── worker2 │ │ │ └── virtualbox │ │ │ ├── action_provision │ │ │ ├── action_set_name │ │ │ ├── box_meta │ │ │ ├── creator_uid │ │ │ ├── id │ │ │ ├── index_uuid │ │ │ ├── private_key │ │ │ ├── synced_folders │ │ │ └── vagrant_cwd │ └── rgloader │ │ └── loader.rb ├── Vagrantfile └── provision.sh └── vagrant-lab ├── .vagrant ├── bundler │ └── global.sol └── rgloader │ └── loader.rb ├── Vagrantfile ├── html.zip ├── html ├── LICENSE ├── README.md ├── css │ ├── landing-page.css │ └── landing-page.min.css ├── gulpfile.js ├── img │ ├── bg-masthead.jpg │ ├── bg-showcase-1.jpg │ ├── bg-showcase-2.jpg │ ├── bg-showcase-3.jpg │ ├── testimonials-1.jpg │ ├── testimonials-2.jpg │ └── testimonials-3.jpg ├── index.html ├── package-lock.json ├── package.json ├── scss │ ├── _call-to-action.scss │ ├── _footer.scss │ ├── _global.scss │ ├── _icons.scss │ ├── _masthead.scss │ ├── _mixins.scss │ ├── _showcase.scss │ ├── _testimonials.scss │ ├── _variables.scss │ └── landing-page.scss └── vendor │ ├── bootstrap │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── fontawesome-free │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-shims.css │ │ └── v4-shims.min.css │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 │ ├── jquery │ ├── jquery.js │ ├── jquery.min.js │ ├── jquery.min.map │ ├── jquery.slim.js │ ├── jquery.slim.min.js │ └── jquery.slim.min.map │ └── simple-line-icons │ ├── css │ └── simple-line-icons.css │ └── fonts │ ├── Simple-Line-Icons.eot │ ├── Simple-Line-Icons.svg │ ├── Simple-Line-Icons.ttf │ ├── Simple-Line-Icons.woff │ └── Simple-Line-Icons.woff2 └── provision.sh /README.md: -------------------------------------------------------------------------------- 1 | # devops-mao-na-massa 2 | # udemy-devops-mao-na-massa 3 | -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:f97dcf21-9300-4cd2-bfa5-d4c469619eed -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1631918396 -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | f97dcf21-9300-4cd2-bfa5-d4c469619eed -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | d0c5987dc4774dccb4eecccc564d46df -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEAv++dma7HGJHEzaATjiWkPOsvaQwFKydmInHxFaK1PMjh6B31 3 | eZIDntzUOi7CiUKDlmzfaGgYEB6wIXPqT5wT/MIvZKcEBurEWgZZzOEV47WcNvYu 4 | SEstQLfqxt3bWWpRDCn5TQTrSqZTCuWhbRu1PL/NZufd3IVU18sOKOftrbcP39YH 5 | ZvEcjj7KXeRYxtC+v7l4zXp12DjxsJ0M14e5B8i80KybdHxVb9v9XCP6KD0/trhy 6 | s7ZsT3ShJqfTXmZIIQ7A76yg+2Q0h3Zg6EJr6IK3Mss6kFG37mXVD6jKA0QhQYQJ 7 | xjhCGx51VPEGyaCHlIDpn4MTi8mtMs+kYUY5DQIDAQABAoIBAEhfigXRKbHSBWuj 8 | 2LvY5b0y0YXCypAjIxgJ7uZBnCV3efeUlGNq84KLslreFuy67/Ngyj0MQ0aQy8lR 9 | dCDgsYi1kDlb4ODa1X88tc/Tb/WVHXp8Caeo8T9eGmEyduuYc0cq7J5mJHLZlKaf 10 | P+dsc0Kc8E7FT5s/i2ZzYrt5+N1valUChLdhLsaNxPttb20qidLkwoQJzEbKTsZS 11 | QkWOZdJDR3TzymI67a39+trFBXDoAlUsDNrUI7ppx71fOPsXY8/5eXU2+l47NfsF 12 | aEZE+REmPbB/lhepp1V6X2m3A37P+EtqPeHe8fIc4rBailoKYqJ+BrQQvAu/ER0w 13 | 4Z5ueOECgYEA6pS1BPZ6Tqt+nWK1EomUBSKteApcymovlmVRjAmV1K7cQX8hPO+r 14 | bd5REbN6OvDJbH7/e7ZJ4HI9oCDKNBUnXk/pqjOsMb0Jj/0CWwM86dLeC4KyR6SP 15 | NlOG/pk//AGR/yLD/iY6cmZ4WOb4WG34m9rXYMOPkFSGMmnTEybND4MCgYEA0XYX 16 | NmHRKCOYMYbi6s0rlJhWc4kPFJd9Ey/FEv9UzzUcSFkin1jrl1YVZTpw5Igdr0d8 17 | R45HWb1qsg1Vzr/V7CTgXu6M/pAX98Pu5GAJPo+kWedR+zdYGwPa5FfYTNPUiRkr 18 | 2hstF+DqhA0z01sG2Md+13xR0qV0aIIw36KQIC8CgYEApwYg6ZqxtSgIa/lnIf7R 19 | ZOKvDsSaEwmOPpB/gq0kgJ3Md9oUCXZA4maj5G2dPzBIyraWJDjD20qcNFKEhpb1 20 | RAK0RhqqpXOKxnoIXlMs4PPiY+G4HKi/y5eni8oEM+POVxIi6OfBP8lUMUCrXRNY 21 | K2ijZ+N2afa04lpVDtLWuQ8CgYEAxFkIpWfIYvIK5tJkwGoXojGzSJaAVnMzQdsT 22 | yB0laR+GJaO4utrl7XU6lSvVS8T03qwKKiGLbOoMrF+nwik95SEkWpkP/kkgzpcS 23 | x23m/Ig2LjiTNwTISHqypD5cephPsTyxSMEU4j9qVuLxY/z+TBOmKWVWZjnHB3iT 24 | S+/dXu0CgYEAuOGPleYcO3bNC/QyLDsGtZ7o+5SlvUvgngzAbvwKUNwJ+PDUVWbw 25 | Qw75/FryyPbF/Idp0vfrbWp2I1j8F9JgG6SY5z8+3a7P0LDr67joJD0doCyu5OcM 26 | lSM4SUSdVLA/37KvEyWBQzTGN+DUHVAY9aB3iPyhZaIT+Sa4J0h2c5Q= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/ansible-lab/app01","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/ansible-lab/app01 -------------------------------------------------------------------------------- /ansible-lab/app01/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /ansible-lab/app01/Vagrantfile: -------------------------------------------------------------------------------- 1 | 2 | Vagrant.configure("2") do |config| 3 | config.vm.box = "centos/7" 4 | config.vm.hostname = "app01" 5 | config.vm.network "private_network", ip: "192.168.1.3" 6 | config.vm.network "forwarded_port", guest: 8080, host: 8080 7 | config.vm.provision "shell", path: "provision.sh" 8 | end -------------------------------------------------------------------------------- /ansible-lab/app01/easy-notes-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/ansible-lab/app01/easy-notes-1.0.0.jar -------------------------------------------------------------------------------- /ansible-lab/app01/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | cat << EOT >> /home/vagrant/.ssh/authorized_keys 3 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3MFoyTfe243GDS+ibxWP2YeEZHcZt0HTVzhJJ6S/J32CIGeisv3dq1I2NEgPpjWHRfyx8t/qGF27Ajm0p5wgOwJ8nr543E6GRK6WW/Kwcu4UVA/FHD0bJZi0Kod7GIWNVJ0yQSSV8OBiWYIqb6boO48M2vJcBVqhIJmIEje5jEuQ8lq/oa2KGzhVZQADF1Ev1rWsaG8OPJ/O2PlC2/zNfJvj+WBWcn24W7zLsL3yawgGZoSsRJAFf/yghwNFIK+khWQxKaM5CDK0IFjxg4Tbd+yipIoxMDzwTWCx+gU0YWWYo7UQGrv4U/Uk48djWmsWYoYcm6lAoeORnfXBJ5SkF vagrant@control-node 4 | EOT -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:ef8d4ddb-873f-4d63-acc9-95a6d9c78f5a -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1631916489 -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | ef8d4ddb-873f-4d63-acc9-95a6d9c78f5a -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 9b47410ce8144a3286e22c1cf440af33 -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAt3EZGwoZgcnuUh3vlylZGsmM7E9XgiWx1U1lY3Ylx+8s+xk7 3 | CjhI3NZ2MEGB32EF2I8qAyclllDV34speUUR2lbnurrRbqta6iurAeIcZv/KuroN 4 | JDBKkmjkPL2eOB0Qn4zTYCddfJEAJK8EaE6+LXuuhGZabSOXcdWbb6cmBtyHIRLW 5 | 15bGuDReDu1bz4ydricZR9CtGtEWrIcIsLDiigZfoLFTtIyBYBs6jyKLFcmUk85q 6 | OzIzHyb7jNbmTnBoJlaCawgiochLtCsMTjmoVmdvbLc+Krmo/H9SCH+d0v9tTn7c 7 | kMF+sep91ySHbDB047SGQnsETRs6xNG/9gQnXwIDAQABAoIBAGDiPcU3J1OSB+mc 8 | 3+5xKxtnuaMRIIGfUPX8A4FtY/TdkF8p6zGxmmHwbsl7v5Dv2DuRGTpDEan7FYoU 9 | IJpo7U3ouki35GbT35dv6sh62E9Z54OJQemMC8aZ2XlvGEJAr4fkw7qz778bgfzd 10 | 5rEEbZLuELTirf2YX6MCky58FCxopZNWn/ALYclg/WSVDx5beKCln0/yWUGCyUst 11 | 6fZoNyl3ebqSOsmHr7YrA0fEGp9cqbOg3wQnVYDYFDp+MdZT4ISMCtXtitq4QDHY 12 | kWIbqebWK2pj9wsKM+FyYvwxzIPYZX/LIEIeOsbGyxCQG7OpyRQrV/g2o3QIfm2u 13 | 5zhG8wECgYEA2+m64VQrdjAS7lyV3wiGr0YOjrPGC9aHfrtWX8Qp29LVRiX60R7J 14 | oGVWiHNdkhz3z5ZDVSE0+JWUdOC6wjtoy0P1PKluDdBBhjXcJvRLMlOTWtDg/lgG 15 | Hqbv+waoSo2fh1LsgYr9Lir4lM9qwashSxFSRnsi6B+btP2IRQEr9IECgYEA1YtC 16 | A0tvns5bn3LlHAbD90QoEseu8H6TV1STrWVsFebtvft2xKX/31TRReuj8Fg9x/ns 17 | IPq7FpOPZaE98iWj7gfhmy5X6vCkE0bvg7nDD5B/4b/O/ZV3rV1UyhfS5a3BhDhZ 18 | Epk0LGW10YP0wvPlbACMAZxS/LANyjSe4EBoq98CgYAVq5CIx7yIpvAWoPT7x2FO 19 | QD8K/NgVLoynhlpakX/2c24kvXVbygbgUVwXkha0YTpiMFJuPxlzLXo1kjeVEDmh 20 | Xg76bU+0+MKcMQ6CoCwQx3+LwW2KYq4nsxeOyvcmcZI4yYkYstOECyP3tgC1GOHs 21 | /cX3wAaOjR7Q1PLqqdTlAQKBgBW1EELReklEZN/yiAOvVGBgV0qBbfEYjNXFzTVF 22 | KBWZ4fT8CPi4fygusQ9Qgtu9vJoFd9Fqa3ZCDcOg/nENDnr15iMmNN23FJa5EUPs 23 | sD12zOkf3GS+uumuoR3iChg6738HU1amqD0TIcZoiYr/zASMka7gOzdgliZF7xiQ 24 | s5M1AoGBAJDw8XXVZLdR6E6MzRmEgIJXdIXLAZ97LXzMOIvtxfKJexPUm41oRnVv 25 | VtkbzJCIfseHSrBaD41fFuJIahuUoSqbf83q0veJyrnhRbfwgf295/7I/88aBRb2 26 | yE0NltAun4lVGXqxc/+KAYlpDudSiyg7h5XJPk4vNbR89Q0/C1kv 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"nfs":{"/vagrant":{"type":"nfs","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/ansible-lab/control-node","disabled":false,"__vagrantfile":true,"map_uid":503,"map_gid":20,"nfs_version":3,"nfs_udp":true,"uuid":"1570462803"}}} -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/ansible-lab/control-node -------------------------------------------------------------------------------- /ansible-lab/control-node/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /ansible-lab/control-node/Vagrantfile: -------------------------------------------------------------------------------- 1 | 2 | Vagrant.configure("2") do |config| 3 | config.vm.box = "centos/7" 4 | config.vm.hostname = "control-node" 5 | config.vm.network "private_network", ip: "192.168.1.2" 6 | config.vm.synced_folder ".", "/vagrant", type: "nfs" 7 | config.vm.provision "shell", path: "provision.sh" 8 | end 9 | -------------------------------------------------------------------------------- /ansible-lab/control-node/note.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Aula de Ansible", 3 | "content": "Estudar Ansible amanhã" 4 | 5 | } -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/app.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Configurar servidor de aplicação Java 3 | hosts: app01 4 | 5 | user: vagrant 6 | become: yes 7 | 8 | vars: 9 | - dbhost: "db01" 10 | - dbname: "notes" 11 | - dbusername: "notesapp" 12 | - dbpassword: "devopsmaonamassa" 13 | tasks: 14 | - name: Adicionar usuario de app 15 | user: 16 | name: app 17 | comment: Usuario de aplicação 18 | uid: 500 19 | - name: Instalação do Maven 20 | yum: 21 | name: maven 22 | state: latest 23 | - name: Instalação do Java 24 | yum: 25 | name: java-1.8.0-openjdk 26 | state: latest 27 | - name: Criação do diretório de app 28 | file: 29 | path: /opt/notes 30 | state: directory 31 | owner: app 32 | group: app 33 | - name: instalacao do git client 34 | yum: 35 | name: git 36 | state: latest 37 | - name: Clone do repositório Notes - app 38 | git: 39 | repo: 'https://github.com/callicoder/spring-boot-mysql-rest-api-tutorial.git' 40 | dest: /opt/notes 41 | clone: yes 42 | force: yes 43 | - name: Configurar arquivo de propriedades para camada de banco de dados 44 | template: 45 | src: application.properties 46 | dest: /opt/notes/src/main/resources/application.properties 47 | - name: Gerar pacote da aplicação 48 | command: mvn -f /opt/notes/pom.xml package 49 | become_user: app 50 | - name: Registrar versao atual do pacote 51 | shell: 52 | cmd: mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\[' 53 | chdir: /opt/notes/ 54 | register: app_version 55 | - name: Configurar serviço do Systemd 56 | template: 57 | src: etc/systemd/system/notes.service 58 | dest: /etc/systemd/system/notes.service 59 | notify: reload daemon 60 | - name: Iniciar serviço notes 61 | service: 62 | name: notes 63 | state: restarted 64 | roles: 65 | - configuracao-default-so 66 | handlers: 67 | - name: reload app 68 | systemd: 69 | state: restarted 70 | daemon_reload: yes 71 | name: 'notes' 72 | - name: reload daemon 73 | systemd: 74 | daemon_reexec: yes -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/db.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Configurar servidor de banco de dados 3 | hosts: db01 4 | 5 | user: vagrant 6 | become: yes 7 | vars_files: 8 | - vars/main.yml 9 | vars: 10 | - dbname: "db01" 11 | - dbusername: "root" 12 | - dbpassword: "devopsmaonamassa" 13 | roles: 14 | - configuracao-default-so 15 | - role: geerlingguy.mysql -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/roles/configuracao-default-so/main.yml: -------------------------------------------------------------------------------- 1 | - name: Upgrade de todos os pacotes do s.o 2 | yum: 3 | name: '*' 4 | state: latest 5 | - name: instalacao do git client 6 | yum: 7 | name: git 8 | state: latest 9 | - name: Configurar hosts lab ansible 10 | lineinfile: 11 | dest: /etc/hosts 12 | state: present 13 | line: "{{item}}" 14 | with_items: 15 | - 192.168.1.2 control-node 16 | - 192.168.1.3 app01 17 | - 192.168.1.4 db01 -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/templates/application.properties: -------------------------------------------------------------------------------- 1 | ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) 2 | spring.datasource.url = jdbc:mysql://{{dbhost}}:3306/{{dbname}}?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false 3 | spring.datasource.username = {{dbusername}} 4 | spring.datasource.password = {{dbpassword}} 5 | 6 | 7 | ## Hibernate Properties 8 | 9 | # The SQL dialect makes Hibernate generate better SQL for the chosen database 10 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect 11 | 12 | # Hibernate ddl auto (create, create-drop, validate, update) 13 | spring.jpa.hibernate.ddl-auto = update -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/templates/etc/systemd/system/notes.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=notes 3 | After=network.target 4 | 5 | 6 | [Service] 7 | User=app 8 | WorkingDirectory=/opt/notes 9 | ExecStart=/usr/bin/java -jar -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom /opt/notes/target/easy-notes-{{app_version.stdout}}.jar 10 | SyslogIdentifier=notes-%i 11 | 12 | [Install] 13 | WantedBy=multi-user.target -------------------------------------------------------------------------------- /ansible-lab/control-node/playbooks/vars/main.yml: -------------------------------------------------------------------------------- 1 | mysql_root_password: devopsmaonamassa 2 | mysql_databases: 3 | - name: notes 4 | encoding: latin1 5 | collation: latin1_general_ci 6 | mysql_users: 7 | - name: notesapp 8 | host: "%" 9 | password: devopsmaonamassa 10 | priv: "notes.*:ALL" -------------------------------------------------------------------------------- /ansible-lab/control-node/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | sudo yum -y install epel-release 3 | echo "inicio da instalacao do ansible" 4 | sudo yum -y install ansible 5 | cat <> /etc/hosts 6 | 192.168.1.2 control-node 7 | 192.168.1.3 app01 8 | 192.168.1.4 db01 9 | EOT -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:61f50c78-1477-404b-a82d-77802939f69e -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1631919897 -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | 61f50c78-1477-404b-a82d-77802939f69e -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 159a2a876f5d43468051b998b976fca0 -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEApROfBTQsZAlPrpsG1L66aMMs+2t2E3fg4aRInSUtZO7WPWXe 3 | BJDCFr0753rkiqdo9HGiZES+WIruHTPgeoTIQ97en9TIcdcsGNJ3hZjEiCZkj8nr 4 | oFTmN3wPfo36jhonzweb/7htVz797dEiVrpuXhMOIkgQEUQkdkpUBgpZqKBdxLbS 5 | OC4cn9YaKZaXRKvXUPM/y7DKGuUrzzPASnZbh2Y2YXGggmaLDV0fW41mpnZnCPPB 6 | qi8SYhe8g2Z8Sk2sjByT+dO9khGjJ9VKyi0brEdDa9UkjLtcAtuSujQVI3W9F6R/ 7 | jq0fj3w8web/Uoew3Vqs20w+mzkP9t7E2db71QIDAQABAoIBADGFLVMWT6rC0FCE 8 | 2QvBG5KJ2lih6A33DFMkQVRC7tc0frh0cqHT+yVvJyVNzHl7txR9ckW6CY/uPXgt 9 | M84NPzZ9CTPRVUAxWF0p5gkBxxNA0TIBVNoIHffPE6bXWK6AUijdE4MnBEYD85EA 10 | B9kUnD9EYB0QmSFU28tQiNw3BqZ62bRfJun8E5JBVpvRDtCSSalg6VXe6Cx09ylB 11 | wuodNAiEEZPiAtx0r0gvqlyFH2t7H5v/cFZY/EFM6sfe8jfGPaI6Qvt0M6cXlAAN 12 | Dc35h+OnTtXtZoB93VbRUCcw1rreHUHfQIr974oVVR2TrwU9z4ZQOCBzYg+Cnngd 13 | TLq4LoECgYEA1lE+ZqUs7L2swf32DasCIiSxiV0UIGabJ/LtuKmCQJVga5ASSRRD 14 | +rUUABtsN0Zq+43Nl6Ssxskdtn0r0z8cFr2K0EoVYdOZO0MugB2GvEQ6+1lo1MsZ 15 | fowIiZzUN9TOT7nKPZbqVBkj4cuCUZsXBupm7qjPEHvWmJfeAftICk0CgYEAxS60 16 | 2UBbsPkRN7TFvozIkLen68iPdWsyyjmZQpdQ8haIf94WLYV5p3WfmlN1xcpEDG/B 17 | N9pdb98Rg1ToY+QSUMmfZSEKQi3kIV/R5PApSo6MsRy7odGDebYthXz9jeF4zyGV 18 | Q92iQq+GC3EzSzX/NjaqoqKipiRS60cZSE/ia6kCgYB9OLMRHmmFWb3bCxv9GHIC 19 | qRXigLQFym3VhadIQiKMwbq4nlFQybp+fdbVyTANi+NuX4hElj8tVs05lyFIKJOs 20 | 5cp5sQ+VPSFG8xX0XUwgLG2Z9r+9tX2L5x4F6dBFXt28z31PRyJbSOUiRNo7/DYU 21 | IFlMEO4LX5AfUHyzA7Mv8QKBgDVONBvLNz53hr0NhKvHuWzOCXpHZOj0Su26doE3 22 | EO3xQ4N10X8K52Fq/fOlfmAzFwRZrd1gjgPxRPXBHXXrsTvf1dRsAy7y4wpWshJ3 23 | DmKWeNhkkSDk1+suYc4FhTI28wbj6EtJflUSyGUNfDVn6o+IZcbDur65cSUjumT/ 24 | G5HJAoGBAM0ZlKeM2BMy7XN0mkLZA3IcpeBCukx0OirSJODx4ozd4PjftnOmIC3k 25 | Ffratnh/OEjKwOfpEI2C6mOuKdT3zVx6GUx78erVKl/22l0T+UNMUG7K4Fp+StVr 26 | gup4y/L1qG9bnNaPIlyizatz5pKTGu5kO09R4HPWmT/Y0JryQgSN 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/ansible-lab/db01","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/ansible-lab/db01 -------------------------------------------------------------------------------- /ansible-lab/db01/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /ansible-lab/db01/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | config.vm.box = "centos/7" 3 | config.vm.hostname = "db01" 4 | config.vm.network "private_network", ip: "192.168.1.4" 5 | config.vm.network "forwarded_port", guest: 3306, host: 3306 6 | config.vm.provision "shell", path: "provision.sh" 7 | end -------------------------------------------------------------------------------- /ansible-lab/db01/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | cat << EOT >> /home/vagrant/.ssh/authorized_keys 3 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3MFoyTfe243GDS+ibxWP2YeEZHcZt0HTVzhJJ6S/J32CIGeisv3dq1I2NEgPpjWHRfyx8t/qGF27Ajm0p5wgOwJ8nr543E6GRK6WW/Kwcu4UVA/FHD0bJZi0Kod7GIWNVJ0yQSSV8OBiWYIqb6boO48M2vJcBVqhIJmIEje5jEuQ8lq/oa2KGzhVZQADF1Ev1rWsaG8OPJ/O2PlC2/zNfJvj+WBWcn24W7zLsL3yawgGZoSsRJAFf/yghwNFIK+khWQxKaM5CDK0IFjxg4Tbd+yipIoxMDzwTWCx+gU0YWWYo7UQGrv4U/Uk48djWmsWYoYcm6lAoeORnfXBJ5SkF vagrant@control-node 4 | EOT -------------------------------------------------------------------------------- /lab-docker/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:e41c9d5c-9744-4f4b-987a-ae6a1151a5f2 -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1632526161 -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | e41c9d5c-9744-4f4b-987a-ae6a1151a5f2 -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | a881d23c3ce441e9af1772b432368539 -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAyKMrJOLd1vLHRarCFFwQW/s8sUumRJhs5nD3MYdkvshJ8zyO 3 | JOomXMBmGWRm0PT222segNuCKWKkFi9NdnTVSP+X0B1DIfxiRYEPyaAONNJeqViZ 4 | GtHbFgw0k90Y2LZldFNfcvXW0g5uzjZiIAbydQnIj9/TN5cyLpbLKWt6qnZNyOxz 5 | +xzmOemy2C5uQvlLwA/rf1xaaLIQ2AUhfn+XzL5YDGoO8Vo5jEBe3JnGqoo4qvIa 6 | UhzIl7qlMETiVh8iZ5s8JE5Z4G2aQJ75R9ZxbU1hBDd4uDPruyu5EJm5nGSi1gyN 7 | ozaOJ/PxRaJVdzorxFQ3XuosXaXgxkl2GHLknQIDAQABAoIBAGPs4A/+7X2gbJ7F 8 | 7OM29u7YseGbS7PeNl6O5I5GYGakWjBKeIDqHTEUocUDvDFVz5x4PTjwGmOCPTbP 9 | WEUm6xLwOSvtZwIGMOts2/APRwQHwh2VgqtY2UShz43VEArezKii3WbkCZmUlpsd 10 | esF4tEiWFs2RLCEDrHqHn6eBYBaE8twBPmQWqFbWdJx8e9yDPJSFJDA9uu906aV3 11 | a/tVgyyIyQ4kO+o4n+ZVC/9hjdNxxwJ0Gr1fUhFXzZzDfng5c8yyi27rjq6b9OPv 12 | E4/r2Cq5qAL8jD+5UwOYKp37yct4oq8Fy+6SaU8Dsc6MSs+SkLJaYU6x5FbD0dK8 13 | fFhTcAECgYEA8/UYXdX4ZshtloFPC9FGZFa5Em5Up+ps7n4o8enqm6UDiFPZd/rH 14 | VK/WblxaHQg63d4Y3Ct56P2/PJNukjf57sBOmyZy3C4RBmCGPGduBfM8+/RbGd3Q 15 | WFz6NAQzVnSXFtI5yvQFJ8EwHsHS3jxA8EvgozNwdBLAXJBkVWAl6akCgYEA0oqi 16 | r/RJi6KvuQ20BmOmqPtldkN2SrwjTlERQcE+qNBLdTAtn+KV040w0rmd7XwqAIog 17 | StBYdk9dDFdusgif1j2WOlRD6utAMHztoshRhGXYh7k8oKOhq/z58QwZRnydf6gm 18 | ICPpbqwvPEkYjZmdHtH28DVdNbcBTtNmA3Fmg9UCgYAySVJFfWafoS7duDfYAsJU 19 | yn+Jqg5vMmZT3tOH0iTXAnOw9T+9eIcAEOLNiuHUXC7uLurG73tIqI1z6hv/reQp 20 | 76AEYS+J7UD7JIhnCRbnyRTIBr2EnnFk1X2JnVgLuSqvvJPHHve1EyBdJqzVvGvS 21 | XIGogmDqvDbEncrgwlnuSQKBgQDMaKUCx94Pn+eTduZtvZo1Pb6IT38tl/N/Od3T 22 | RVccdv6LzDa/oDFurwnTzTqzM3VkCLbJa/Y3B16DeO+UEiN80VZlUyKNldFAQkpF 23 | XM8oB+lt/D4MiFGStY3EpcZ0VNBk/E/nrHYaaTmDAkTAVX/iSF/DX0wbto2ihkPo 24 | 29R38QKBgFfR5pMBPZjU9tB40PqAcuVBdz81Kv9z3IPruogDQZn5flf9HziCQDIB 25 | odAJ+KdGeaQr0UPoOtMIoBQzLPez0rigwg2Q8SpZhmxldF9BR9pvmipWqD4GZ5NU 26 | 3XUJJ99TlvA4RBL9CL6bwSzLJhCk7k3cjiq6rUbKULj2CVv3h2F1 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/docker","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-docker/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/docker -------------------------------------------------------------------------------- /lab-docker/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jdk-alpine 2 | RUN addgroup -S notes && adduser -S notes -G notes 3 | ENV MAVEN_VERSION 3.5.4 4 | ENV MAVEN_HOME /usr/lib/mvn 5 | ENV PATH $MAVEN_HOME/bin:$PATH 6 | RUN wget http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz && \ 7 | tar -zxvf apache-maven-$MAVEN_VERSION-bin.tar.gz && \ 8 | rm apache-maven-$MAVEN_VERSION-bin.tar.gz && \ 9 | mv apache-maven-$MAVEN_VERSION /usr/lib/mvn 10 | RUN apk --update add git 11 | RUN mkdir /opt/note 12 | RUN chown -R notes:notes /opt/note 13 | USER notes:notes 14 | WORKDIR /opt/note 15 | RUN git clone https://github.com/callicoder/spring-boot-mysql-rest-api-tutorial.git /opt/note 16 | RUN mvn package -Dmaven.test.skip=true 17 | ARG JAR_FILE=*.jar 18 | RUN cp ./target/easy-notes-1.0.0.jar /opt/note/easy-note.jar 19 | COPY application.properties application.properties 20 | ENTRYPOINT ["java","-jar","/opt/note/easy-note.jar"] -------------------------------------------------------------------------------- /lab-docker/DockerfileStage: -------------------------------------------------------------------------------- 1 | FROM maven:3.5-jdk-8 as buildstage 2 | RUN mkdir /opt/note 3 | WORKDIR /opt/note 4 | RUN git clone https://github.com/callicoder/spring-boot-mysql-rest-api-tutorial.git /opt/note 5 | RUN mvn package -Dmaven.test.skip=true 6 | 7 | FROM openjdk:8-jdk-alpine 8 | RUN addgroup -S notes && adduser -S notes -G notes 9 | RUN mkdir /opt/note 10 | RUN chown -R notes:notes /opt/note 11 | USER notes:notes 12 | WORKDIR /opt/note 13 | COPY --from=buildstage /opt/note/target/easy-notes-1.0.0.jar . 14 | COPY application.properties application.properties 15 | ENTRYPOINT ["java","-jar","/opt/note/easy-note.jar"] -------------------------------------------------------------------------------- /lab-docker/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | 3 | config.vm.box = "centos/7" 4 | config.vm.provision "shell", path:"provision.sh" 5 | 6 | 7 | end 8 | -------------------------------------------------------------------------------- /lab-docker/application.properties: -------------------------------------------------------------------------------- 1 | ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) 2 | spring.datasource.url = jdbc:mysql://localhost:3306/notes_app?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false 3 | spring.datasource.username = root 4 | spring.datasource.password = callicoder 5 | 6 | 7 | ## Hibernate Properties 8 | 9 | # The SQL dialect makes Hibernate generate better SQL for the chosen database 10 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect 11 | 12 | # Hibernate ddl auto (create, create-drop, validate, update) 13 | spring.jpa.hibernate.ddl-auto = update 14 | -------------------------------------------------------------------------------- /lab-docker/docker-compose.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/lab-docker/docker-compose.zip -------------------------------------------------------------------------------- /lab-docker/docker-compose/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine 2 | 3 | WORKDIR /usr/app 4 | 5 | COPY ./package.json ./ 6 | 7 | RUN npm install 8 | 9 | COPY ./ ./ 10 | 11 | CMD ["npm", "start"] -------------------------------------------------------------------------------- /lab-docker/docker-compose/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | redis-server: 4 | image: 'redis' 5 | node-app: 6 | build: . 7 | ports: 8 | - "8080:8081" -------------------------------------------------------------------------------- /lab-docker/docker-compose/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const redis = require('redis') 3 | 4 | const app = express() 5 | const client = redis.createClient({ 6 | host: 'redis-server', 7 | port: 6379 8 | }) 9 | 10 | client.set('visits',0); 11 | 12 | app.get('/', (req, res)=>{ 13 | client.get('visits', (err, visits)=>{ 14 | visits = parseInt(visits) + 1 15 | res.send('Number of visits is:' + visits) 16 | client.set('visits', parseInt(visits)) 17 | }) 18 | }) 19 | 20 | app.listen(8081, ()=>{ 21 | console.log('Serviço na porta 8081') 22 | }) -------------------------------------------------------------------------------- /lab-docker/docker-compose/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "express": "*", 4 | "redis": "2.8.0" 5 | }, 6 | "scripts": { 7 | "start": "node index.js" 8 | } 9 | } -------------------------------------------------------------------------------- /lab-docker/easy-notes-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/lab-docker/easy-notes-1.0.0.jar -------------------------------------------------------------------------------- /lab-docker/node-app/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine 2 | 3 | WORKDIR /usr/app 4 | 5 | COPY ./package.json ./ 6 | 7 | RUN npm install 8 | 9 | COPY ./ ./ 10 | 11 | CMD ["npm", "start"] -------------------------------------------------------------------------------- /lab-docker/node-app/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const redis = require('redis') 3 | 4 | const app = express() 5 | const client = redis.createClient({ 6 | host: 'redis-server', 7 | port: 6379 8 | }) 9 | 10 | client.set('visits',0); 11 | 12 | app.get('/', (req, res)=>{ 13 | client.get('visits', (err, visits)=>{ 14 | visits = parseInt(visits) + 1 15 | res.send('Number of visits is:' + visits) 16 | client.set('visits', parseInt(visits)) 17 | }) 18 | }) 19 | 20 | app.listen(8081, ()=>{ 21 | console.log('Serviço na porta 8081') 22 | }) -------------------------------------------------------------------------------- /lab-docker/node-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "express": "*", 4 | "redis": "2.8.0" 5 | }, 6 | "scripts": { 7 | "start": "node index.js" 8 | } 9 | } -------------------------------------------------------------------------------- /lab-docker/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | sudo yum install -y yum-utils 3 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4 | sudo yum install docker-ce docker-ce-cli containerd.io -y 5 | sudo systemctl start docker 6 | sudo systemctl enable docker -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:7b0e0842-4d13-4fd8-90ea-59ac08780388 -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1634153101 -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | 7b0e0842-4d13-4fd8-90ea-59ac08780388 -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 17e503701fa44962981d9ccdc94579b1 -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAv91c8OgFkFrFOi0knvBzvC258zpl5ztYipdTvMJUotu83oo3 3 | Wrr+5XDFktfJy16E35SsoOw9QdBXisXAF2OWbSOzHuNJzFpL72KH4jfWnHlo2OdI 4 | hempsNGlcSDLPhHIs5xaP/bYyPPZnS2V4Df6Y7nguvek7pIXa9XqMrgCCEjMZidX 5 | J5M8GZzbZ6TrQ9fWu58mJRJUCUX/MhlTdNRRb5vb4Y1A7QbauRsG0AUHdvcw4Uv3 6 | Dt6J8vs9tFme86JiL0aj9VHkWbK0nJGQ5rJxVLjIWyV1bXM6sfa3KH9DL+0Og/tU 7 | Uy9ZKYdEOuNSbUSbT3Vh9TuiMPsTE153L1iOAwIDAQABAoIBAALxNRSoqjUtfyrG 8 | OHKLg2rWVKyrL5bdLR1q9qjFXiDlN7895V1p0rDYCt+WmYyZ1XXMRN1u4f2ZYU5K 9 | fAifyVXBH2UQ3TfaBqIUI7tPWeYqYnY5Db6n96czf9L9SsCX6zj949BpS6fBPYwQ 10 | f+ThVuCioBSd6ZSS/vLzY9UFR1qzJEAnKXee8FowtoiAXO82L+SFYosa/VhZdytH 11 | N6Um7/OhoOjw5nl82FcCpSCvFVaLPlB74d2Dvz8ehAVtSlSUU7QFJv/0Fo47pWcD 12 | iBOpCFahofdWbPrsB87jDSo2t7pW+eF0LB4Dv1UQhyxQTpxCHsyR3DgdCvP5IjsO 13 | 3sfsfekCgYEA+AbpoLopAAJeHiQxVlspBTFFzLXuFHkWWOQLin+43VPy6QSYnPPl 14 | YCS4YtUXTXuMKH6CT0mZxfQfuA0xzCFe2o13XhgPO2pHD25PBl7Ta6vHnVlyDpGN 15 | C5YDS25XQZ7K0cOvj2XyV4y9MgBJCdID4+88vg0kE+8mi+gfEWHDHj8CgYEAxghG 16 | Nx6Z4BoHyfH3Kgg87eOv8J3gHyBo1Lr6cgBr669A4ef1C0sSPTo3TUoYQpxBzZ0R 17 | 6J/sLoFWhOdEail3rT4/mibamhRN72SIkVwHx1ZrB5t0qH1kmNd3GeR4g7esPiuF 18 | s47E8Rpnr7CsY3akC4O3Cc3J2ONN+wVEiH+RZz0CgYAeB8A7zK5wKNk6bwlmOk1i 19 | KpAX9CMqaWrSQnI/R62bZrGvkvXjcwhftrJ4jPJwWDglIwQmE3RB6of4oehYneW9 20 | Mom0Y9dcS0blUGbTD6IrlDXsEEtmBit8rqIhfO+lq1NFSJs2EpLgFNNHfY9aWApO 21 | i8XgAPlQTJFvOSCh2yNjwwKBgQC4Lk/nye1BcdRWrVW84QaSFla3io49RO5bFEAE 22 | MYIuJMRKl2rgAwVGrtNqbgRcR2ooKvLSEZMfualXWKTXvBOTrDaJT6O29DV79lvS 23 | He8aJbTL0XjRkDY0tQkPqt+vWe+3rtDeLGXc/Dr9O2tJ4rk2AF4Hnz8hGl+XnNGd 24 | xk/c3QKBgDguwgUO/YlDUrahPSVsyJdITfv/R7R/0wtDJ86wRy6aDluFT0/8dvmV 25 | CO6Ovcu7F3KDh30C6v2/BBS2teyg1j6ZLsh2axAh26v19pi2xiUmKUmkIxuqolj3 26 | udxVy2BMirZigvZCQBysWZHtt6hTRNOSVB3EhKD2HDa57gYAeDzY 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-jenkins","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-jenkins -------------------------------------------------------------------------------- /lab-jenkins/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-jenkins/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | 3 | config.vm.box = 'centos/7' 4 | config.vm.hostname = 'jenkins' 5 | config.vm.network 'forwarded_port', guest: 8080, host: 8080, hostip: '127.0.0.1' 6 | config.vm.network 'forwarded_port', guest: 8091, host: 8091, hostip: '127.0.0.1' 7 | config.vm.network "private_network", ip: "192.168.1.5" 8 | config.vm.provision 'shell', path: 'provision.sh' 9 | config.vm.provider 'virtualbox' do |v| 10 | v.memory =2048 11 | end 12 | 13 | end 14 | -------------------------------------------------------------------------------- /lab-jenkins/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | yum install epel-release -y 3 | yum install wget git -y 4 | sudo wget --no-check-certificate -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 5 | sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key 6 | yum install java-11-openjdk-devel -y 7 | yum install jenkins -y 8 | systemctl daemon-reload 9 | service jenkins start 10 | ###instalacao do docker e docker compose 11 | sudo yum install -y yum-utils 12 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 13 | sudo yum install docker-ce docker-ce-cli containerd.io -y 14 | sudo systemctl start docker 15 | sudo systemctl enable docker 16 | sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 17 | sudo chmod +x /usr/local/bin/docker-compose 18 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 19 | systemctl daemon-reload 20 | systemctl restart docker 21 | usermod -aG docker jenkins 22 | 23 | #instalacao do sonar scanner 24 | 25 | yum install wget unzip -y 26 | wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip 27 | unzip sonar-scanner-cli-4.6.2.2472-linux.zip -d /opt/ 28 | mv /opt/sonar-scanner-4.6.2.2472-linux /opt/sonar-scanner 29 | chown -R jenkins:jenkins /opt/sonar-scanner 30 | echo 'export PATH=$PATH:/opt/sonar-scanner/bin' | sudo tee -a /etc/profile 31 | curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash - 32 | sudo yum install nodejs -y -------------------------------------------------------------------------------- /lab-k3s/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:9ae970ba-f19c-468c-9468-3ca448e86425 -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1636685786 -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | 9ae970ba-f19c-468c-9468-3ca448e86425 -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 54497e6dfb054d3ba44af666cb839e19 -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAxnCtMqCdUT7zp8zQPLnv3kvSO/8X5g0FOfsKnh+0Csn8jU7e 3 | AKC8tpaPcdH/m5Id0HgnEw7Vr6L7yCvTNYk0yK9emsqigBcQx8g5IZV4GXKiVBny 4 | e0kadfQofyhywFnBNusFU+9QGsxKOVNNbVQwbFZmu1A2am5jaVGdFI21dyih2hrW 5 | v337nvcK35tuRTyRDxC1+JhxB607gxAmTr7C1Oaoi3uuz7/INgEjF8UT0qqHvjsy 6 | YbF199mlazeLOYutQio/JJPdUUk8HdIz+609g2YICxUgCc/t6dHB68m7F2wSaLpd 7 | kdxeXkJNkcavx2xJrNlinmDefuVb1rg6QUG9pQIDAQABAoIBAHH6AeDUU8d4iuZU 8 | Qz695UIe9o+zQvzFeb0FreGIgBa6US6wn95odDvDWnybi17FnA5DFN5jZOTOjiM4 9 | 2MUlG4YxA/uQa6l6lg7Jt9bMTQEA0K/Rf27EXEhnhmMSzmYgp1Ntxc+h4raho/gt 10 | GomzE2UGc1cfCUI0STESyVAm3JWlYhx81zQ7709Aofp1SVAd6rvDUxY9MIlvcKyz 11 | 0Wcr/xo0QOKgFoTHr5vC5v/7Hta66DEhPGU899lRh7dWLQqkOjjnL/i3a9Tyq1dg 12 | 4dOESm4Ku/N/5a66oj0R+QHnbemhFJsi+uFtxa7CieK9yxZEZfm+KDHH1shZx77s 13 | TId7hDkCgYEA/gSg3stnM5Pwiv/3Xk18ZlIGFD20m3LdP+Vm5rgxLnHldxGl55Bz 14 | i769jJyGHmLK2FkCFqxDgHcaPsPus8rtdkVeZEPfLeybV1WRIns5wi6mq/a3bmhD 15 | gvl/qtV4GwSilva5QjofYaVQEj9rIC3H9W8NajJ1P1YC5mivRwloVgMCgYEAx/0J 16 | pZLQh/TvuL+/5K1eFBD92paxkf1UO5IYog8AVh2/oAMSJieoC791g9PLAtzvWSHi 17 | Yt7IjaokaiuhjNINZ2OB+j6FkI4wSt0XNRTYo5AgCqFWHA+juYS+DB/8nXfee1lA 18 | dsj4EOPtLlm36yPahGCW3omnXSmPlQWne6xVwTcCgYAq0FDk/FeKo/a5Fud0p46+ 19 | GDkaFERqpvOPn3S2knkHoP7SENFrtDclaKK+Hmukl3Yk/OuTMrm13103EwManqtj 20 | cdG1CJOHRAfysmNh8m8LwZ0qAs1r+HrYioDwJEa4FxHoa/FRrkY3yQsz6CiAJfc7 21 | 8NnL+nE0maSnfSF90aIaTQKBgBPnuJ0VRtIxa+bMlxHwu4ttwYaPNy9bspWXTgJb 22 | UeJAZcFMbPMFQXGh5dVwMCWhzeTmPX0vxXBsPeGfZB37DkB7JAW/UVX5AQ+Cf/vV 23 | jlaBUt8b/dEfMWGWt7/HM0KNGsTWNldcW2x68zGI1oh98hL49itCMjlQmKzxeiES 24 | HxrzAoGBALPKRX4WEfIPevCWIAE3pHTpid6xU0FZZ4qXTv4Xufx5ss854tjWj6fQ 25 | +1sYE/LB6+2moyrRpYup03SrKMywnOHKUcSjez4foW28bCIVr0EmcN6Eyz/q4CUM 26 | VvPjXI2I1Nc7gsy4hMp15K4NYwFpo+dFf4gdWlV06knoRycxnf8T 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-k3s","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-k3s/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-k3s -------------------------------------------------------------------------------- /lab-k3s/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-k3s/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | config.vm.box = 'centos/7' 3 | config.vm.hostname = 'manager' 4 | config.vm.network "private_network", ip: "192.168.1.2" 5 | config.vm.provider 'virtualbox' do |v| 6 | v.memory =2048 7 | end 8 | 9 | end -------------------------------------------------------------------------------- /lab-k3s/redis-app.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: redis-app-deployment 6 | namespace: devops 7 | spec: 8 | replicas: 2 9 | selector: 10 | matchLabels: 11 | app: redis-app 12 | template: 13 | metadata: 14 | labels: 15 | app: redis-app 16 | spec: 17 | containers: 18 | - name: devops-app 19 | image: devops/app:latest 20 | resources: 21 | requests: 22 | memory: "64Mi" 23 | cpu: "100m" 24 | limits: 25 | memory: "128Mi" 26 | cpu: "500m" 27 | ports: 28 | - containerPort: 8081 29 | --- 30 | apiVersion: v1 31 | kind: Service 32 | metadata: 33 | name: redis-app 34 | namespace: devops 35 | spec: 36 | ports: 37 | - port: 8081 38 | targetPort: 8081 39 | name: tcp 40 | selector: 41 | app: redis-app 42 | --- 43 | apiVersion: networking.k8s.io/v1 44 | kind: Ingress 45 | metadata: 46 | name: devops-app-ingress 47 | namespace: devops 48 | annotations: 49 | kubernetes.io/ingress.class: "traefik" 50 | spec: 51 | rules: 52 | - host: "www.192.168.1.2.sslip.io" 53 | http: 54 | paths: 55 | - path: / 56 | pathType: Prefix 57 | backend: 58 | service: 59 | name: redis-app 60 | port: 61 | number: 8081 -------------------------------------------------------------------------------- /lab-k3s/redis.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: redis-server 5 | labels: 6 | app: redis 7 | spec: 8 | selector: 9 | matchLabels: 10 | app: redis 11 | replicas: 1 12 | template: 13 | metadata: 14 | labels: 15 | app: redis 16 | spec: 17 | containers: 18 | - name: redis-server 19 | image: redis 20 | resources: 21 | requests: 22 | cpu: 100m 23 | memory: 100Mi 24 | ports: 25 | - containerPort: 6379 26 | protocol: TCP 27 | --- 28 | apiVersion: v1 29 | kind: Service 30 | metadata: 31 | name: redis-server 32 | labels: 33 | app: redis 34 | spec: 35 | ports: 36 | - port: 6379 37 | targetPort: 6379 38 | protocol: TCP 39 | selector: 40 | app: redis 41 | -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:359bd1de-19a0-491e-805a-d6ad8f361506 -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1638622300 -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | 359bd1de-19a0-491e-805a-d6ad8f361506 -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | b88d99ad29d7430b868059d82addc8b5 -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAvHPb56W9tt7xTYNMZJz68NzmeP+XvRx+HEpUeD7uIGdbIoCR 3 | 7lK6y6YNlyfyHj0KlA5ESxrOwPOZDaIm/MJ+gfVmzqVKncrJcbYM1GsYbCba1/HB 4 | Ix2QmRG4COb7ocujKzhDXvBiyY3NdUwyIomnXS9SbfFDdLnnXf1gomFAX0wScv4p 5 | bUyjixwo1RxNwL2OR4IBC1MD1N83eOnonJ0x6hEBnNLF55zJjmtU+l7DeEKINtKi 6 | avv2FnTHTOqEWjPlisPprr0dcdI174qlfYYHh54ksmirR8irQuVEKoBadOmnoday 7 | Vo10RX/Zb0/VU9wZ6ImZv27h/SuRiVadjvzwmQIDAQABAoIBADo2P7NqixO2AivD 8 | ZxGdPBay5a5ypViROJNckoMiTURNKOWbeXh4raLChGgwuqWEjYP2dDoO6dbIaHrB 9 | n/Fr0tAqEbu7azUasuchKQ1kl4Kw7eDOmK5UL5pY0tRNJWVxFdH/6y+kaZ+A4fpd 10 | sw7gHoa2W2wCnqer1UA/SF5gVBYbTPrndAX8u2oI6KmQGEySA3tFWFP/mOIaEfU5 11 | lSOL/swoc4VuMUpBoOIbQDUgvulvqik2r7DvF/E00kYxqwQD/rOm4ZXi7PtAOeKK 12 | AV0Q8goDYmN8zLtpiceqV5VX4rPblkddThGZYVOa4AsS75FnP6nHqyEb5Nbm2Zzo 13 | NO74mBECgYEA9bOVGaThsATrlaIumO1Hx5t+cVA23pEm8d6H7J9OHA4VUPGsmVC9 14 | ylQ8MlqlQ6JohVIW3zxcSYruvgtsdu4J+knRMxLbB2bBOyQi8Ltum7KiY9IgzbNH 15 | bfyFd5noqCDWLPhwJCg6jD3Bz07YrFLA/L2GxhHdrZ0IeyHnxyLeu4cCgYEAxFn8 16 | eUfTluwpJ+Gh2+sNkxyZ2SkHCpX7F1QhAYoRF3ncouLeqoj5dnRaTcQuzPJZB7AQ 17 | 4cohglrnXTxiXkiD7BFHbIu9oVIrrE42vjqZ77b4QhQ9V259BqFSGcIes6WWNXpD 18 | Ovxnz4khfW5gQ2eAKkGHZKODeNRUcy0WfyBtOt8CgYEAyKYvTRHpfOWHvlsD0r9z 19 | rv6886yeIoRHWZ5xQjuWfjLCFahHW60kUOcZgcWk0OcAlF/FbejNNQHQlkKeAUHD 20 | xDIkNaFgXVr80l9gaVenrF7lXr9rKpEN9DQUiueVqDeosHDyo5R2u7BzZejt6Uxr 21 | bfsY5QgSEIX9NxEpRuajHmECgYAh8TBMwtbX0xE2PLHfM13QXXRW7tmxwcV6/ecK 22 | vhRAS6eRXMiDEFSXXnuxz8ULVqV/R7dTYL60KwStwF98zupHJ6GCKRHpziuQiKC7 23 | 96NepfF6csc70vS37bEklML76RbzPaRbkQBdBuaMKUVowX6NT3CZPA7hF0tV8ahe 24 | 53saXwKBgQCs1N5FtWTllahlUpqkr7a3JbY5v1/A+tmualr983jYiwshGjTDxQkm 25 | AZFny7vJnD05JAr/0W375S5l4L099osYmXzybq4Vx3ETQzYWT/qnhgo88rgElAzZ 26 | 6243MuZU3XuC4llAAyVJWRc6KSyfpTo8AjAEVjm5S8Cvt9gDvIKRnQ== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-prometheus","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-prometheus -------------------------------------------------------------------------------- /lab-prometheus/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-prometheus/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | config.vm.box = "centos/7" 3 | config.vm.network "private_network", ip: "192.168.1.6" 4 | config.vm.provision "shell", path: "provision.sh" 5 | end -------------------------------------------------------------------------------- /lab-prometheus/node_exporter-1.3.0.linux-amd64.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/lab-prometheus/node_exporter-1.3.0.linux-amd64.tar.gz -------------------------------------------------------------------------------- /lab-prometheus/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 15s 3 | scrape_timeout: 10s 4 | evaluation_interval: 15s 5 | scrape_configs: 6 | - job_name: prometheus_node 7 | static_configs: 8 | - targets: ['192.168.1.6:9100'] -------------------------------------------------------------------------------- /lab-prometheus/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | sudo yum install -y yum-utils 3 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4 | sudo yum install docker-ce docker-ce-cli containerd.io -y 5 | sudo systemctl start docker 6 | sudo systemctl enable docker -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:0bde6a93-047d-457f-8f58-2e56604f075c -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1634072885 -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/id: -------------------------------------------------------------------------------- 1 | 0bde6a93-047d-457f-8f58-2e56604f075c -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 628fee3299d04437a5a258ebcf78f1e8 -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAy5r3kd91JtUryCZuePuebq1/LIRNtfIrU15CBiEDAA0tkt+s 3 | CHGZg7b8pqoHZJGCD+pxXT9bV3lQ4z6D14mSpEnbDbP0pRdYae0JIlHKSYDLLSHA 4 | SU13j9vXLyLQMgR+9UdQUVr2ChAK89L9ETQKfHwqyBsNwjSgJgzWsMwsIg5tsRD6 5 | XjwWy0AbRHBxjuLPX8iUaMQ45HgReSEC5hjqW7CrGwWSEpi/H3OW5Jpa8dMH3D5x 6 | D3leiy3dmRRZBFKvcE7QvQGBNadkAnZSMDvKG5/iUYJ1Pcx4+U30EVkgqvUHiBVB 7 | Q9X7jkvEGOEFNZ2Zd0Qmnxa4jR915JYEoOTsRQIDAQABAoIBACxver6EVU4PUgnR 8 | kWSoDZC8Hrg5e7hMzPXZ6XDq/XuiZKLcW/BP0qAzbHp3OzvQoeEVWn5uWGID4Qpn 9 | V2DP7ogacktQTgFF0g70I30w+oQGLtF/vzaASKrF4PWxlFyGLKsdUEMhJfdWPv2t 10 | u3tory0x8ChR9zO+RoFnZeeZ97vKpDU1q7pG06u6COLyTicz7Ueu0WgaylYOTfI8 11 | IGVEIvTuaKlEScDGtfadVkJ4BA8KLf136U/LiU35j8u4XYrxVaeKpd3CKOinbo1H 12 | LaoHxquFOiJFOyMh7DY05e+SYCRV1a05mFTLq///vZZf/+7PPAfUyELmYKYuFyK5 13 | 6v3SRbUCgYEA++aVMZD7Wz7mpbqHMx9f299xdLjbZo6zpdkL3nDwOIdd4vuWu1D8 14 | HEqIEAWZvTkv8BncCJyZLXhbGujnAk36GiYAlEd7w2Te9gF/l8tDOdTxrX2Nq0/F 15 | bI8oB5Jij3A5kOpeCNfKz+aJq7SpEtTzsAz3WzZYQDpNxYtBCCMC3c8CgYEAzusv 16 | nDM1tUq0HwS54hIwKaaa8GIaEemmWeV0jBT/4eczF0+Ulg15gZtIMFYKEytOuDA/ 17 | BuPe5rb0F2DLiZd90aVLnZ81CzYZbxU2LcNuNvnYQXkiK/PX6n62HD2Fb99BF5e7 18 | mHUizMzLZFUDKLhqkokWpoIqh8cXZbLASrrkzasCgYEA7neZobTY38aqXxY4S6NW 19 | AjaDl7YwreRGGalh3REZuModjXYTefzuznGYYWKL6mCrCyfP768gK7WWueDmYH4l 20 | WH/FaJpLheyGTmmYusDIQYVfzZfgd98qzNyxTom8GIJrXM8iekifTTW3+v8qWBOV 21 | JoL/4C+QWC1Z1rs/s05Btm0CgYEAp5656M1LOtuTYnVPp6WYQoVmikjOWahvS++n 22 | JDt2tie2qbGb6pprzeRe7FkmvDSfBnJ+/DPoQ/n9blrJR2LjV8uRn9RzAewHWodS 23 | ZmwkgoCPASsB1Z0pUhrnp6TmzaOLdXNDUtPBJyrXsSV0863BF4faQ3S6w1cyyv2s 24 | 7FzOMRUCgYBtE60X8ddgg0AHuaGfQOxxE3Sb1TPik8WEp9MZYhpLgPJD/j398VXd 25 | zlLYo1pwZx10cbgV2lcJoezBU4punOO/V2P2xxFH6EV73d4rEmP1vqPbIqpEVtjc 26 | bCgees6bFupMZFdSA4gKhuveIr0TEdUAzPraccfHB8CKGO+HEcAo9g== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-sonarqube","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/machines/default/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-sonarqube -------------------------------------------------------------------------------- /lab-sonarqube/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-sonarqube/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | 3 | config.vm.box = 'centos/7' 4 | config.vm.hostname = 'sonarqube' 5 | config.vm.network 'forwarded_port', guest: 9000, host: 9000, hostip: '127.0.0.1' 6 | config.vm.network "private_network", ip: "192.168.1.6" 7 | config.vm.provision 'shell', path: 'provision.sh' 8 | config.vm.provider 'virtualbox' do |v| 9 | v.memory =1024 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /lab-sonarqube/node-app/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine 2 | 3 | WORKDIR /usr/app 4 | 5 | COPY ./package.json ./ 6 | 7 | RUN npm install 8 | 9 | COPY ./ ./ 10 | 11 | CMD ["npm", "start"] -------------------------------------------------------------------------------- /lab-sonarqube/node-app/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const redis = require('redis') 3 | 4 | const app = express() 5 | const client = redis.createClient({ 6 | host: 'redis-server', 7 | port: 6379 8 | }) 9 | 10 | client.set('visits',0); 11 | 12 | app.get('/', (req, res)=>{ 13 | client.get('visits', (err, visits)=>{ 14 | visits = parseInt(visits) + 1 15 | res.send('Number of visits is:' + visits) 16 | client.set('visits', parseInt(visits)) 17 | }) 18 | }) 19 | 20 | app.listen(8081, ()=>{ 21 | console.log('Serviço na porta 8081') 22 | }) -------------------------------------------------------------------------------- /lab-sonarqube/node-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "express": "*", 4 | "redis": "2.8.0" 5 | }, 6 | "scripts": { 7 | "start": "node index.js" 8 | } 9 | } -------------------------------------------------------------------------------- /lab-sonarqube/provision.sh: -------------------------------------------------------------------------------- 1 | #/usr/bin/bash 2 | useradd sonar 3 | yum install wget unzip java-11-openjdk-devel -y 4 | wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.1.0.47736.zip 5 | unzip sonarqube-9.1.0.47736.zip -d /opt/ 6 | mv /opt/sonarqube-9.1.0.47736 /opt/sonarqube 7 | chown -R sonar:sonar /opt/sonarqube 8 | touch /etc/systemd/system/sonar.service 9 | echo > /etc/systemd/system/sonar.service 10 | cat <> /etc/systemd/system/sonar.service 11 | [Unit] 12 | Description=Sonarqube service 13 | After=syslog.target network.target 14 | [Service] 15 | Type=forking 16 | ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start 17 | ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop 18 | User=sonar 19 | Group=sonar 20 | Restart=always 21 | [Install] 22 | WantedBy=multi-user.target 23 | EOT 24 | 25 | service sonar start 26 | #instalar sonar scanner 27 | 28 | wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip 29 | unzip sonar-scanner-cli-4.6.2.2472-linux.zip -d /opt/ 30 | mv /opt/sonar-scanner-cli-4.6.2.2472-linux /opt/sonar-scanner 31 | chown -R sonar:sonar /opt/sonar-scanner 32 | echo 'export PATH=$PATH:/opt/sonar-scanner/bin' | sudo tee -a /etc/profile 33 | curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash - 34 | sudo yum install nodejs -y -------------------------------------------------------------------------------- /lab-swarm/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:6aa32e8b-78cf-4c39-8ee8-a10c7ae84ba4 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1633184808 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/id: -------------------------------------------------------------------------------- 1 | 6aa32e8b-78cf-4c39-8ee8-a10c7ae84ba4 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 736fb7881ffa482ebd1d99036bd94d9c -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEAsO3t3QGLcIKEElG2iN+gn8UjOBfy6TpjlnV2vBoBZVMGx0dS 3 | 1g/LxXCQR7lO7R9XAh5B/y++1WKGbXINPGSSzcNjeSDU4RdA+h83RW+DSatSutJs 4 | v2ar+5VCnlWLZW/Y9yNy2Vm3X02TNVjH67dp/YyfIYgJioiEnR6BLxLGNYcFCBT3 5 | hUCi1mpvuRU5SwqPJL8fv9NRV+GxMG1wnQja5omS6BvYfLkczCBGaMhryYnjoEM4 6 | f6xCKQzsccnPc6Lrtqlit7mvA6ONUjynm/ieVK+KK3KTXKWMis5zJ3+OJOSa7XBb 7 | cdbaJ8Q4rxp1P7pD87+QhvjtM7ng2IpKPB8VeQIDAQABAoIBAQCRebDArUp3ofjy 8 | DxnlBOrPM4q3zok+V3IW/lI4a7GGHHRQWka0F5zWpK0dLDLHKaOi7Doblqh0T2R0 9 | jPhxFcjXQraBnAstYK9eeVg60WvDoQiO8AHWhpcWby2tfmz1ZLeizRTbvbbWt7Q4 10 | gt0u5UpS3dLiATbHH2Taw4A4slkjHJgAWpH/SJCSJb2PhazpE21p9vBWCS3xG/ku 11 | 1deOegBaG/Xj4KyJVEum6M4muhFjlP2kf76RPQUTRDbjPf6BPX2MYURhGHrbCtJm 12 | X0At9S8+CWz9on/m2cmTk/ukTHICuVyxZDZZh/UYAl2vJXyvGUcVA8uTWSoU9ugY 13 | LeC3eIQZAoGBAOleRqzAXHctdJ/lLxsPfDVm7rMJUNcsXOLe2jUA4yxFENtMR0Lk 14 | ZEYKJPmTag36f64Ga3aNWpmcbxOwQFub78LYZ/iFZXPwWiDQwHEocriGBWtMSeGh 15 | xB6VtuTpfWlzNrGRKANh9xWFaqCxJx8pJBNtuMJqw6MtxDnUozLX0jMHAoGBAMIW 16 | eOP7bW40lXe0VqIetTDGEb8O4sQUw1MeKrupI02GRGRp+47F3ksDSwXDoNHVbr+1 17 | UI4caarUCwTHew8SqCwPsppi/ejVEBDR3ELawqKlBB+xfMtqbrmS25ENp5Uq8OQE 18 | XExno2u86Mr6xX397ixGY/5QyUJklxj4uDJvr9N/AoGAc2H0iadWUGp+FiyHnNaM 19 | MA8jiAvcF3dMubM7qic1Kwc+7V6KgU1RMrwDSg6TyjOHe3CbI3OCTx7kYJStTV4N 20 | LoY26c5yud8lgMIV1B0Ok6NX/JQsl02XHRQi6I11P3UCnsrJQNroApEDhk3wrNx3 21 | hM+kISQOdJjFQ16aDiJdQHMCgYEAmvaiUzTeLI2jgU3llc96z5R1etyBxhjl0ylU 22 | 6TykSTOYy6urBFWLpMzeS53ke2Uz5bD4vl6FJ7XhjlFPObultnhaG9ZJ8GqdRzCn 23 | 8mED4iRq5HsrrqYt/dD5qhkC4qDEcOniX8anvk+4dsg+gtgKICObluQdrPrvgSqk 24 | tvBhrDUCgYEAvFiPaT1MP1aQfkL/vd1tUGe7QynCrEyJmA2U37Y2Kesk2PdSwfAe 25 | RxjSvQTk3gZDNde8FEW2/c4ABjR0b2iHaFWm3i9FVy5otoBlAEZo8x7zE4t05XbQ 26 | mcflSs+drUkDgsx8nk7gAky2EcG1pqpe1zRAWAMVENcuUO36HLqCs+E= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-swarm","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/manager/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-swarm -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:8e878d6d-ac6e-42f2-b03b-ce088f204f47 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1633185255 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/id: -------------------------------------------------------------------------------- 1 | 8e878d6d-ac6e-42f2-b03b-ce088f204f47 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | f8131071c5ba46e28dcf2a0017e94a34 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAtFFpH5A26qTs/QwxOB5KLTCbmCd2ii8phzpzcBMoQMxofn40 3 | 0cy/II2C4Y3GZ2RodcPcwyLuJsTvBaDRmI6AmxRnhpt4wUgNcfylhAoLlCIPpg0n 4 | RmihGehTQq4nxwS2PgJxbUHGTpLlONsY7P8LQP9lcU1jBrDwQY+3bOvYMO418kbg 5 | 1v3hZiX5wdmbYFJpkRF3If2vn0o3wDRpi0jkbdplR1eYfCJFpsZlII9My92vcqVw 6 | 6HDjTgpXRUy12nudQnYwiWgQS30h1NZxEs+wnWto9D4iMKo0fSKcCr6T3WDkGAUa 7 | BB8rjIe/13KiknuqOaB0gx8AEj953Hz9HJ0vuQIDAQABAoIBAC2kkdSAf7Yjay2e 8 | gXLwD9yiejAohRPzXjKxs/jBkKXeV/D050/X4OVPjLqlVXxkaSCuJFpspBXCMbKe 9 | A4/3OkyG/LGQ9x8NqwGYbxkeJdIoUQe6Op/S6jyRl0nApab15V+K5MVAKf9Hpagf 10 | pY6P/HxGaZoleZR/A0HFLCvxAvdXV5g471xYBHzAfzrei8fSOwGmKeTplkrPT3x9 11 | IgHuQsu6CMemBsxWLiW1kTrmrZsKxQrMwQHBSkudSdLA+/658Q4tTbw/C5nfhcjD 12 | a614CDFwWoNbvu9KWLOK6lwcTilBSiYBWQ5/YuYQChURTW2LTDDJyZXlOM6WUwI2 13 | n3CHgJUCgYEA7UBnxzK/ivuQ+EhJfLWPMH1Yrp8Uo537w4t9J/J25pxSipekM4sA 14 | mU7jXc+u1ahikeFyjqNhkjgIJ/aZdf7NfRwoYiRPCve25M5kkipMHjdSDHo3RP6R 15 | abP63X+UT7GH3GyF7EfIOeMIIfK0hNdwH7JsjnndESUB3Y8DGZfhtPsCgYEAwpE9 16 | gOxOAOli5gv0G8qBgEggPu9H/w016aFkrCNNV81Z68ovVicNDHhr9PXMkNo8Oqm5 17 | JP1P8d9e3LMiURmcAwsPoeVu0xj+B7Aledire+hCQa0GeUYD3diL+eEAqFyuzVE6 18 | Vf/8fc7MY2epOqcEyToHL8JhukamsVP6iNaVh9sCgYEAyn6uFNa7pWQR19fa4RYV 19 | oM1bY69jbkLpH31u1SmdUjcaPDAxdcyuNiue4/Lexn1xpBFINXY9UQ+B5poTYSKZ 20 | QK9HyHw0+qdy8tc1/4sabK/K19t4UOr2McHr3CGH9H0R+JCnvYOG4eFkj5UXfkpi 21 | 6Krg/LoGdRug+/mUK8P2YQECgYBY3loHPufKBs/DX4ZaAz7vRwJjfIuX9YLAeZUw 22 | Atfa2NLPngPNB/0vyvkUZAjRyLxl1wvX11PimDIOAEwWWuolgbHcMp1SEkJFZLFZ 23 | XBvHdqh8svkX/2DYvYYB1kGkpOC6qvVIPqonFIPKi5iCT7Mh7j1GFTTqDkcpC8CN 24 | K+YUrQKBgQCJ0btH7XIHvoeZa7TvDNp2MrHh8fcluXxHMqeOh4dxvPGlavJye3yx 25 | Y3VCM2RtoCqci3rTtCbOJOUd8lwMYrcWSTJqRsqUhm5ckOrNIwyTBiwSTzyjEIVQ 26 | aQfgrNnieVfND4zHAmgWzO1K9aTVQ5InpUj5b7Ai1RGIfi1DT+8J2w== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-swarm","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker1/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-swarm -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/action_provision: -------------------------------------------------------------------------------- 1 | 1.5:50c63240-022d-45e5-a885-8036f0431a4b -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/action_set_name: -------------------------------------------------------------------------------- 1 | 1633185719 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/box_meta: -------------------------------------------------------------------------------- 1 | {"name":"centos/7","version":"2004.01","provider":"virtualbox","directory":"boxes/centos-VAGRANTSLASH-7/2004.01/virtualbox"} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/creator_uid: -------------------------------------------------------------------------------- 1 | 503 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/id: -------------------------------------------------------------------------------- 1 | 50c63240-022d-45e5-a885-8036f0431a4b -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/index_uuid: -------------------------------------------------------------------------------- 1 | 7f7960e4f6f745e3b4299bcd01a6df64 -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/private_key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEogIBAAKCAQEAyWoPgu2gNkZtBC9dlGcGyx8GkmpR5V8RXBnOwC/qedt/3wGL 3 | GHUaAQneBb9//geAH/DhWhLL4Js7rX6M/vCw3qeYV7jv8VBnFkLJ9ISZtmScE07k 4 | JOcfB7xG2vqGGXl3VY7E+xdDDmHaW4QIwJ+A7im0IIQfIhUDj5pk+0lJhajdcBfv 5 | l13ioWG4hGU8Uk6UPEhbIUFbPsE2BFtzg0yStIXraqrk9IcUVrHsHvan2gIvGhZL 6 | t57Gi7cK4Xzqpf7xRYNeG+5zptZY2aVcDScL60UZ2ulacYGZ2lQviOXDvpBy5TIz 7 | pAsuawubShXU6WBJboXk/MrEjSWLAITP6L0V4wIDAQABAoIBAC3oqOR0+WGlp8+e 8 | ZDwhR6Egz0SsS0J26uQNVdzkjxN7fqf8GBJZDrZR43N39NqYJxIgu5zmT+ZAO9gN 9 | 0mGBxy7ZEJZeJwLgCr8+Nf4wA0FZqWGVR9dJfv8qYRQkqlBAKX0s76Uz5irvDvBx 10 | JfWR5bdjdhU7SEVieM9Qp9fHGqUGMsmz8IxXqgif8wk6YnGfWvNr27T6OO6hED5y 11 | h0A31Vx5TgHICf3bz5tngYTtcQmnAisoZFdlZvQMB/5/HSl+5Xrv1sqopf+IeV52 12 | gm8Jw/WCXxYAPc08XM9GSHHhroeG/GWl4eqm0wsiqTQQgpseOuPJreFeXN4r6ah8 13 | S4Fc81ECgYEA8e4BUU4HFgAA5WL570CM8GQbFtli02rrD3y3XSFpRHiZpfRau7v5 14 | CPwNlehePjKGkHCiSXzXj0idroQzIas7KDkG0/nrNyDxTkW8VvZMgzKLGzaPrx6B 15 | bRQiHfLcm5ZLNxoP8UGL1+VTcx5UGypDkp5iAUiSLHmHgZtzx99god0CgYEA1SDW 16 | c4GmNURbLNeijtfNAm4duIb4gzhUto/Rx/uO9kd2UqOxRBgiU8Geh0miw60I3sDa 17 | dxxqOMeW4Ao4jPQdS4CWa/8hWlbTt4wzUA5z7pCnRTU1PQB/eLMV7wi3vyb57sRG 18 | Jxe7HmoznBOZB5doSlUVS0PdCp1SJ55XQtL1er8CgYB0XBX0JgRQd4X2zikKAtEG 19 | 2g8RaVMX/oe6NjD3MRexYBP+ds2hF+LKiHh8TnvtjF2eYR4dHFeNSc7VXi49ll7o 20 | lK0NDVotdMG69N2GMgZQ3+F6ID7xakmzzgguwV2L07ivcvCSCAWbvGfrqX2oZyaD 21 | AXx/w4jSrU0YcE06p9yRXQKBgD7+vMRZXvJBqR1hA0hrWspMF/bR1iSbAtcPPXd5 22 | 0HDVAJE+lwfEhmjxQtVEG5rwyz1kDW7FdFQiEmNYQgzPntURReTX/VjBb0TCaOxR 23 | yUyLbxWSu5CzU/ouHN6RWhZjA97iHsYxSnqb83M/i6zlwMqvyWJ8xZn8lCrnr20u 24 | A6brAoGAHughHrpLuT2tF20WlxfpZyjTqoFy3EprZuIzvAT1q3awFH0Z0QPFwRdT 25 | 9kq66wbPqccjUfCb2feTeheBZ+4Jg5om35Gvx8xAqBdbHhmDP+NswTTd//1hYIT+ 26 | XN1WRl/vJTH/EaYQIzTGfTYF6Otkqjsn4cAuDcZ6Ezedvr8N9A0= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/synced_folders: -------------------------------------------------------------------------------- 1 | {"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/devops/devops-mao-na-massa/lab-swarm","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}} -------------------------------------------------------------------------------- /lab-swarm/.vagrant/machines/worker2/virtualbox/vagrant_cwd: -------------------------------------------------------------------------------- 1 | /Users/devops/devops-mao-na-massa/lab-swarm -------------------------------------------------------------------------------- /lab-swarm/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /lab-swarm/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | config.vm.provision "shell", inline: "echo Config docker swarm cluster" 3 | config.vm.define "manager" do |manager| 4 | manager.vm.box = "centos/7" 5 | manager.vm.hostname = "manager" 6 | manager.vm.provision "shell", path: "provision.sh" 7 | manager.vm.network "private_network", ip: "192.168.1.2" 8 | manager.vm.network "forwarded_port", guest: 80, host: 8090 9 | end 10 | config.vm.define "worker1" do |worker1| 11 | worker1.vm.box = "centos/7" 12 | worker1.vm.hostname = "worker1" 13 | worker1.vm.provision "shell", path: "provision.sh" 14 | worker1.vm.network "private_network", ip: "192.168.1.3" 15 | end 16 | config.vm.define "worker2" do |worker2| 17 | worker2.vm.box = "centos/7" 18 | worker2.vm.hostname = "worker2" 19 | worker2.vm.provision "shell", path: "provision.sh" 20 | worker2.vm.network "private_network", ip: "192.168.1.4" 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lab-swarm/provision.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | sudo yum install -y yum-utils 3 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4 | sudo yum install docker-ce docker-ce-cli containerd.io -y 5 | sudo systemctl start docker 6 | sudo systemctl enable docker 7 | sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 8 | sudo chmod +x /usr/local/bin/docker-compose 9 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose -------------------------------------------------------------------------------- /vagrant-lab/.vagrant/bundler/global.sol: -------------------------------------------------------------------------------- 1 | {"dependencies":[["log4r",[">= 0"]],["concurrent-ruby",["~> 1.0"]],["i18n",[">= 0"]],["micromachine",[">= 2","< 4"]],["vagrant-vbguest",["= 0.21.0"]]],"checksum":"30ea4d4472c43ddd1190623b11c17253fe236958d17d1a8bc6d5b5dcbbb27a93","vagrant_version":"2.2.14"} -------------------------------------------------------------------------------- /vagrant-lab/.vagrant/rgloader/loader.rb: -------------------------------------------------------------------------------- 1 | # This file loads the proper rgloader/loader.rb file that comes packaged 2 | # with Vagrant so that encoded files can properly run with Vagrant. 3 | 4 | if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] 5 | require File.expand_path( 6 | "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) 7 | else 8 | raise "Encoded files can't be read outside of the Vagrant installer." 9 | end 10 | -------------------------------------------------------------------------------- /vagrant-lab/Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | # All Vagrant configuration is done below. The "2" in Vagrant.configure 5 | # configures the configuration version (we support older styles for 6 | # backwards compatibility). Please don't change it unless you know what 7 | # you're doing. 8 | Vagrant.configure("2") do |config| 9 | 10 | config.vm.box = "centos/7" 11 | 12 | 13 | config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" 14 | config.vm.provision "shell", path: "provision.sh" 15 | end 16 | -------------------------------------------------------------------------------- /vagrant-lab/html.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html.zip -------------------------------------------------------------------------------- /vagrant-lab/html/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2019 Blackrock Digital LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /vagrant-lab/html/README.md: -------------------------------------------------------------------------------- 1 | # [Start Bootstrap - Landing Page](https://startbootstrap.com/template-overviews/landing-page/) 2 | 3 | [Landing Page](http://startbootstrap.com/template-overviews/landing-page/) is a multipurpose landing page template for [Bootstrap](http://getbootstrap.com/) created by [Start Bootstrap](http://startbootstrap.com/). 4 | 5 | ## Preview 6 | 7 | [![Landing Page Preview](https://startbootstrap.com/assets/img/screenshots/themes/landing-page.png)](https://blackrockdigital.github.io/startbootstrap-landing-page/) 8 | 9 | **[View Live Preview](https://blackrockdigital.github.io/startbootstrap-landing-page/)** 10 | 11 | ## Status 12 | 13 | [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/BlackrockDigital/startbootstrap-landing-page/master/LICENSE) 14 | [![npm version](https://img.shields.io/npm/v/startbootstrap-landing-page.svg)](https://www.npmjs.com/package/startbootstrap-landing-page) 15 | [![Build Status](https://travis-ci.org/BlackrockDigital/startbootstrap-landing-page.svg?branch=master)](https://travis-ci.org/BlackrockDigital/startbootstrap-landing-page) 16 | [![dependencies Status](https://david-dm.org/BlackrockDigital/startbootstrap-landing-page/status.svg)](https://david-dm.org/BlackrockDigital/startbootstrap-landing-page) 17 | [![devDependencies Status](https://david-dm.org/BlackrockDigital/startbootstrap-landing-page/dev-status.svg)](https://david-dm.org/BlackrockDigital/startbootstrap-landing-page?type=dev) 18 | 19 | ## Download and Installation 20 | 21 | To begin using this template, choose one of the following options to get started: 22 | * [Download the latest release on Start Bootstrap](https://startbootstrap.com/template-overviews/landing-page/) 23 | * Install via npm: `npm i startbootstrap-landing-page` 24 | * Clone the repo: `git clone https://github.com/BlackrockDigital/startbootstrap-landing-page.git` 25 | * [Fork, Clone, or Download on GitHub](https://github.com/BlackrockDigital/startbootstrap-landing-page) 26 | 27 | ## Usage 28 | 29 | ### Basic Usage 30 | 31 | After downloading, simply edit the HTML and CSS files included with the template in your favorite text editor to make changes. These are the only files you need to worry about, you can ignore everything else! To preview the changes you make to the code, you can open the `index.html` file in your web browser. 32 | 33 | ### Advanced Usage 34 | 35 | After installation, run `npm install` and then run `npm start` which will open up a preview of the template in your default browser, watch for changes to core template files, and live reload the browser when changes are saved. You can view the `gulpfile.js` to see which tasks are included with the dev environment. 36 | 37 | #### Gulp Tasks 38 | 39 | - `gulp` the default task that builds everything 40 | - `gulp watch` browserSync opens the project in your default browser and live reloads when changes are made 41 | - `gulp css` compiles SCSS files into CSS and minifies the compiled CSS 42 | - `gulp js` minifies the themes JS file 43 | - `gulp vendor` copies dependencies from node_modules to the vendor directory 44 | 45 | You must have npm installed globally in order to use this build environment. 46 | 47 | ## Bugs and Issues 48 | 49 | Have a bug or an issue with this template? [Open a new issue](https://github.com/BlackrockDigital/startbootstrap-landing-page/issues) here on GitHub or leave a comment on the [template overview page at Start Bootstrap](http://startbootstrap.com/template-overviews/landing-page/). 50 | 51 | ## About 52 | 53 | Start Bootstrap is an open source library of free Bootstrap templates and themes. All of the free templates and themes on Start Bootstrap are released under the MIT license, which means you can use them for any purpose, even for commercial projects. 54 | 55 | * https://startbootstrap.com 56 | * https://twitter.com/SBootstrap 57 | 58 | Start Bootstrap was created by and is maintained by **[David Miller](http://davidmiller.io/)**, Owner of [Blackrock Digital](http://blackrockdigital.io/). 59 | 60 | * http://davidmiller.io 61 | * https://twitter.com/davidmillerskt 62 | * https://github.com/davidtmiller 63 | 64 | Start Bootstrap is based on the [Bootstrap](http://getbootstrap.com/) framework created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thorton](https://twitter.com/fat). 65 | 66 | ## Copyright and License 67 | 68 | Copyright 2013-2019 Blackrock Digital LLC. Code released under the [MIT](https://github.com/BlackrockDigital/startbootstrap-landing-page/blob/gh-pages/LICENSE) license. 69 | -------------------------------------------------------------------------------- /vagrant-lab/html/css/landing-page.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Landing Page v5.0.7 (https://startbootstrap.com/template-overviews/landing-page) 3 | * Copyright 2013-2019 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-landing-page/blob/master/LICENSE) 5 | */ 6 | 7 | body { 8 | font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; 9 | } 10 | 11 | h1, 12 | h2, 13 | h3, 14 | h4, 15 | h5, 16 | h6 { 17 | font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; 18 | font-weight: 700; 19 | } 20 | 21 | header.masthead { 22 | position: relative; 23 | background-color: #343a40; 24 | background: url("../img/bg-masthead.jpg") no-repeat center center; 25 | background-size: cover; 26 | padding-top: 8rem; 27 | padding-bottom: 8rem; 28 | } 29 | 30 | header.masthead .overlay { 31 | position: absolute; 32 | background-color: #212529; 33 | height: 100%; 34 | width: 100%; 35 | top: 0; 36 | left: 0; 37 | opacity: 0.3; 38 | } 39 | 40 | header.masthead h1 { 41 | font-size: 2rem; 42 | } 43 | 44 | @media (min-width: 768px) { 45 | header.masthead { 46 | padding-top: 12rem; 47 | padding-bottom: 12rem; 48 | } 49 | header.masthead h1 { 50 | font-size: 3rem; 51 | } 52 | } 53 | 54 | .showcase .showcase-text { 55 | padding: 3rem; 56 | } 57 | 58 | .showcase .showcase-img { 59 | min-height: 30rem; 60 | background-size: cover; 61 | } 62 | 63 | @media (min-width: 768px) { 64 | .showcase .showcase-text { 65 | padding: 7rem; 66 | } 67 | } 68 | 69 | .features-icons { 70 | padding-top: 7rem; 71 | padding-bottom: 7rem; 72 | } 73 | 74 | .features-icons .features-icons-item { 75 | max-width: 20rem; 76 | } 77 | 78 | .features-icons .features-icons-item .features-icons-icon { 79 | height: 7rem; 80 | } 81 | 82 | .features-icons .features-icons-item .features-icons-icon i { 83 | font-size: 4.5rem; 84 | } 85 | 86 | .features-icons .features-icons-item:hover .features-icons-icon i { 87 | font-size: 5rem; 88 | } 89 | 90 | .testimonials { 91 | padding-top: 7rem; 92 | padding-bottom: 7rem; 93 | } 94 | 95 | .testimonials .testimonial-item { 96 | max-width: 18rem; 97 | } 98 | 99 | .testimonials .testimonial-item img { 100 | max-width: 12rem; 101 | box-shadow: 0px 5px 5px 0px #adb5bd; 102 | } 103 | 104 | .call-to-action { 105 | position: relative; 106 | background-color: #343a40; 107 | background: url("../img/bg-masthead.jpg") no-repeat center center; 108 | background-size: cover; 109 | padding-top: 7rem; 110 | padding-bottom: 7rem; 111 | } 112 | 113 | .call-to-action .overlay { 114 | position: absolute; 115 | background-color: #212529; 116 | height: 100%; 117 | width: 100%; 118 | top: 0; 119 | left: 0; 120 | opacity: 0.3; 121 | } 122 | 123 | footer.footer { 124 | padding-top: 4rem; 125 | padding-bottom: 4rem; 126 | } 127 | -------------------------------------------------------------------------------- /vagrant-lab/html/css/landing-page.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Landing Page v5.0.7 (https://startbootstrap.com/template-overviews/landing-page) 3 | * Copyright 2013-2019 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-landing-page/blob/master/LICENSE) 5 | */body{font-family:Lato,'Helvetica Neue',Helvetica,Arial,sans-serif}h1,h2,h3,h4,h5,h6{font-family:Lato,'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:700}header.masthead{position:relative;background-color:#343a40;background:url(../img/bg-masthead.jpg) no-repeat center center;background-size:cover;padding-top:8rem;padding-bottom:8rem}header.masthead .overlay{position:absolute;background-color:#212529;height:100%;width:100%;top:0;left:0;opacity:.3}header.masthead h1{font-size:2rem}@media (min-width:768px){header.masthead{padding-top:12rem;padding-bottom:12rem}header.masthead h1{font-size:3rem}}.showcase .showcase-text{padding:3rem}.showcase .showcase-img{min-height:30rem;background-size:cover}@media (min-width:768px){.showcase .showcase-text{padding:7rem}}.features-icons{padding-top:7rem;padding-bottom:7rem}.features-icons .features-icons-item{max-width:20rem}.features-icons .features-icons-item .features-icons-icon{height:7rem}.features-icons .features-icons-item .features-icons-icon i{font-size:4.5rem}.features-icons .features-icons-item:hover .features-icons-icon i{font-size:5rem}.testimonials{padding-top:7rem;padding-bottom:7rem}.testimonials .testimonial-item{max-width:18rem}.testimonials .testimonial-item img{max-width:12rem;box-shadow:0 5px 5px 0 #adb5bd}.call-to-action{position:relative;background-color:#343a40;background:url(../img/bg-masthead.jpg) no-repeat center center;background-size:cover;padding-top:7rem;padding-bottom:7rem}.call-to-action .overlay{position:absolute;background-color:#212529;height:100%;width:100%;top:0;left:0;opacity:.3}footer.footer{padding-top:4rem;padding-bottom:4rem} -------------------------------------------------------------------------------- /vagrant-lab/html/gulpfile.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Load plugins 4 | const autoprefixer = require("gulp-autoprefixer"); 5 | const browsersync = require("browser-sync").create(); 6 | const cleanCSS = require("gulp-clean-css"); 7 | const del = require("del"); 8 | const gulp = require("gulp"); 9 | const header = require("gulp-header"); 10 | const merge = require("merge-stream"); 11 | const plumber = require("gulp-plumber"); 12 | const rename = require("gulp-rename"); 13 | const sass = require("gulp-sass"); 14 | 15 | // Load package.json for banner 16 | const pkg = require('./package.json'); 17 | 18 | // Set the banner content 19 | const banner = ['/*!\n', 20 | ' * Start Bootstrap - <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n', 21 | ' * Copyright 2013-' + (new Date()).getFullYear(), ' <%= pkg.author %>\n', 22 | ' * Licensed under <%= pkg.license %> (https://github.com/BlackrockDigital/<%= pkg.name %>/blob/master/LICENSE)\n', 23 | ' */\n', 24 | '\n' 25 | ].join(''); 26 | 27 | // BrowserSync 28 | function browserSync(done) { 29 | browsersync.init({ 30 | server: { 31 | baseDir: "./" 32 | }, 33 | port: 3000 34 | }); 35 | done(); 36 | } 37 | 38 | // BrowserSync reload 39 | function browserSyncReload(done) { 40 | browsersync.reload(); 41 | done(); 42 | } 43 | 44 | // Clean vendor 45 | function clean() { 46 | return del(["./vendor/"]); 47 | } 48 | 49 | // Bring third party dependencies from node_modules into vendor directory 50 | function modules() { 51 | // Bootstrap 52 | var bootstrap = gulp.src('./node_modules/bootstrap/dist/**/*') 53 | .pipe(gulp.dest('./vendor/bootstrap')); 54 | // Font Awesome CSS 55 | var fontAwesomeCSS = gulp.src('./node_modules/@fortawesome/fontawesome-free/css/**/*') 56 | .pipe(gulp.dest('./vendor/fontawesome-free/css')); 57 | // Font Awesome Webfonts 58 | var fontAwesomeWebfonts = gulp.src('./node_modules/@fortawesome/fontawesome-free/webfonts/**/*') 59 | .pipe(gulp.dest('./vendor/fontawesome-free/webfonts')); 60 | // jQuery Easing 61 | var jqueryEasing = gulp.src('./node_modules/jquery.easing/*.js') 62 | .pipe(gulp.dest('./vendor/jquery-easing')); 63 | // jQuery 64 | var jquery = gulp.src([ 65 | './node_modules/jquery/dist/*', 66 | '!./node_modules/jquery/dist/core.js' 67 | ]) 68 | .pipe(gulp.dest('./vendor/jquery')); 69 | // Simple Line Icons 70 | var simpleLineIconsFonts = gulp.src('./node_modules/simple-line-icons/fonts/**') 71 | .pipe(gulp.dest('./vendor/simple-line-icons/fonts')); 72 | var simpleLineIconsCSS = gulp.src('./node_modules/simple-line-icons/css/**') 73 | .pipe(gulp.dest('./vendor/simple-line-icons/css')); 74 | return merge(bootstrap, fontAwesomeCSS, fontAwesomeWebfonts, jquery, jqueryEasing, simpleLineIconsFonts, simpleLineIconsCSS); 75 | } 76 | 77 | // CSS task 78 | function css() { 79 | return gulp 80 | .src("./scss/**/*.scss") 81 | .pipe(plumber()) 82 | .pipe(sass({ 83 | outputStyle: "expanded", 84 | includePaths: "./node_modules", 85 | })) 86 | .on("error", sass.logError) 87 | .pipe(autoprefixer({ 88 | cascade: false 89 | })) 90 | .pipe(header(banner, { 91 | pkg: pkg 92 | })) 93 | .pipe(gulp.dest("./css")) 94 | .pipe(rename({ 95 | suffix: ".min" 96 | })) 97 | .pipe(cleanCSS()) 98 | .pipe(gulp.dest("./css")) 99 | .pipe(browsersync.stream()); 100 | } 101 | 102 | // Watch files 103 | function watchFiles() { 104 | gulp.watch("./scss/**/*", css); 105 | gulp.watch("./**/*.html", browserSyncReload); 106 | } 107 | 108 | // Define complex tasks 109 | const vendor = gulp.series(clean, modules); 110 | const build = gulp.series(vendor, css); 111 | const watch = gulp.series(build, gulp.parallel(watchFiles, browserSync)); 112 | 113 | // Export tasks 114 | exports.css = css; 115 | exports.clean = clean; 116 | exports.vendor = vendor; 117 | exports.build = build; 118 | exports.watch = watch; 119 | exports.default = build; 120 | -------------------------------------------------------------------------------- /vagrant-lab/html/img/bg-masthead.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/bg-masthead.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/bg-showcase-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/bg-showcase-1.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/bg-showcase-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/bg-showcase-2.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/bg-showcase-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/bg-showcase-3.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/testimonials-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/testimonials-1.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/testimonials-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/testimonials-2.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/img/testimonials-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/img/testimonials-3.jpg -------------------------------------------------------------------------------- /vagrant-lab/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Landing Page - Start Bootstrap Theme 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 35 | 36 | 37 |
38 |
39 |
40 |
41 |
42 |

Build a landing page for your business or project and generate more leads!

43 |
44 |
45 |
46 |
47 |
48 | 49 |
50 |
51 | 52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | 60 | 61 |
62 |
63 |
64 |
65 |
66 |
67 | 68 |
69 |

Fully Responsive

70 |

This theme will look great on any device, no matter the size!

71 |
72 |
73 |
74 |
75 |
76 | 77 |
78 |

Bootstrap 4 Ready

79 |

Featuring the latest build of the new Bootstrap 4 framework!

80 |
81 |
82 |
83 |
84 |
85 | 86 |
87 |

Easy to Use

88 |

Ready to use with your own content, or customize the source files!

89 |
90 |
91 |
92 |
93 |
94 | 95 | 96 |
97 |
98 |
99 | 100 |
101 |
102 |

Fully Responsive Design

103 |

When you use a theme created by Start Bootstrap, you know that the theme will look great on any device, whether it's a phone, tablet, or desktop the page will behave responsively!

104 |
105 |
106 |
107 |
108 |
109 |

Updated For Bootstrap 4

110 |

Newly improved, and full of great utility classes, Bootstrap 4 is leading the way in mobile responsive web development! All of the themes on Start Bootstrap are now using Bootstrap 4!

111 |
112 |
113 |
114 |
115 |
116 |

Easy to Use & Customize

117 |

Landing Page is just HTML and CSS with a splash of SCSS for users who demand some deeper customization options. Out of the box, just add your content and images, and your new landing page will be ready to go!

118 |
119 |
120 |
121 |
122 | 123 | 124 |
125 |
126 |

What people are saying...

127 |
128 |
129 |
130 | 131 |
Margaret E.
132 |

"This is fantastic! Thanks so much guys!"

133 |
134 |
135 |
136 |
137 | 138 |
Fred S.
139 |

"Bootstrap is amazing. I've been using it to create lots of super nice landing pages."

140 |
141 |
142 |
143 |
144 | 145 |
Sarah W.
146 |

"Thanks so much for making these free resources available to us!"

147 |
148 |
149 |
150 |
151 |
152 | 153 | 154 |
155 |
156 |
157 |
158 |
159 |

Ready to get started? Sign up now!

160 |
161 |
162 |
163 |
164 |
165 | 166 |
167 |
168 | 169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 | 177 | 178 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | -------------------------------------------------------------------------------- /vagrant-lab/html/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Landing Page", 3 | "name": "startbootstrap-landing-page", 4 | "version": "5.0.7", 5 | "scripts": { 6 | "start": "node_modules/.bin/gulp watch" 7 | }, 8 | "description": "An HTML landing page template built with Bootstrap", 9 | "keywords": [ 10 | "css", 11 | "sass", 12 | "html", 13 | "responsive", 14 | "theme", 15 | "template" 16 | ], 17 | "homepage": "https://startbootstrap.com/template-overviews/landing-page", 18 | "bugs": { 19 | "url": "https://github.com/BlackrockDigital/startbootstrap-landing-page/issues", 20 | "email": "feedback@startbootstrap.com" 21 | }, 22 | "license": "MIT", 23 | "author": "Start Bootstrap", 24 | "contributors": [ 25 | "David Miller (http://davidmiller.io/)" 26 | ], 27 | "repository": { 28 | "type": "git", 29 | "url": "https://github.com/BlackrockDigital/startbootstrap-landing-page.git" 30 | }, 31 | "dependencies": { 32 | "@fortawesome/fontawesome-free": "5.10.2", 33 | "bootstrap": "4.3.1", 34 | "jquery": "3.4.1", 35 | "simple-line-icons": "^2.4.1" 36 | }, 37 | "devDependencies": { 38 | "browser-sync": "2.26.7", 39 | "del": "5.1.0", 40 | "gulp": "4.0.2", 41 | "gulp-autoprefixer": "7.0.0", 42 | "gulp-clean-css": "4.2.0", 43 | "gulp-header": "2.0.9", 44 | "gulp-plumber": "^1.2.1", 45 | "gulp-rename": "1.4.0", 46 | "gulp-sass": "4.0.2", 47 | "merge-stream": "2.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_call-to-action.scss: -------------------------------------------------------------------------------- 1 | .call-to-action { 2 | position: relative; 3 | background-color: $gray-800; 4 | background: url('../img/bg-masthead.jpg') no-repeat center center; 5 | @include background-cover; 6 | padding-top: 7rem; 7 | padding-bottom: 7rem; 8 | .overlay { 9 | position: absolute; 10 | background-color: $gray-900; 11 | height: 100%; 12 | width: 100%; 13 | top: 0; 14 | left: 0; 15 | opacity: 0.3; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_footer.scss: -------------------------------------------------------------------------------- 1 | footer.footer { 2 | padding-top: 4rem; 3 | padding-bottom: 4rem; 4 | } 5 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_global.scss: -------------------------------------------------------------------------------- 1 | body { 2 | @include body-font; 3 | } 4 | 5 | h1, 6 | h2, 7 | h3, 8 | h4, 9 | h5, 10 | h6 { 11 | @include body-font; 12 | font-weight: 700; 13 | } 14 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_icons.scss: -------------------------------------------------------------------------------- 1 | .features-icons { 2 | padding-top: 7rem; 3 | padding-bottom: 7rem; 4 | .features-icons-item { 5 | max-width: 20rem; 6 | .features-icons-icon { 7 | height: 7rem; 8 | i { 9 | font-size: 4.5rem; 10 | } 11 | } 12 | &:hover { 13 | .features-icons-icon { 14 | i { 15 | font-size: 5rem; 16 | } 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_masthead.scss: -------------------------------------------------------------------------------- 1 | header.masthead { 2 | position: relative; 3 | background-color: $gray-800; 4 | background: url('../img/bg-masthead.jpg') no-repeat center center; 5 | @include background-cover; 6 | padding-top: 8rem; 7 | padding-bottom: 8rem; 8 | .overlay { 9 | position: absolute; 10 | background-color: $gray-900; 11 | height: 100%; 12 | width: 100%; 13 | top: 0; 14 | left: 0; 15 | opacity: 0.3; 16 | } 17 | h1 { 18 | font-size: 2rem; 19 | } 20 | @media (min-width: 768px) { 21 | padding-top: 12rem; 22 | padding-bottom: 12rem; 23 | h1 { 24 | font-size: 3rem; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // Background Cover Mixin 3 | @mixin background-cover { 4 | -webkit-background-size: cover; 5 | -moz-background-size: cover; 6 | -o-background-size: cover; 7 | background-size: cover; 8 | } 9 | 10 | // Font Mixins 11 | @mixin body-font { 12 | font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; 13 | } 14 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_showcase.scss: -------------------------------------------------------------------------------- 1 | .showcase { 2 | .showcase-text { 3 | padding: 3rem; 4 | } 5 | .showcase-img { 6 | min-height: 30rem; 7 | background-size: cover; 8 | } 9 | @media (min-width: 768px) { 10 | .showcase-text { 11 | padding: 7rem; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_testimonials.scss: -------------------------------------------------------------------------------- 1 | .testimonials { 2 | padding-top: 7rem; 3 | padding-bottom: 7rem; 4 | .testimonial-item { 5 | max-width: 18rem; 6 | img { 7 | max-width: 12rem; 8 | box-shadow: 0px 5px 5px 0px $gray-500; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | // Restated Bootstrap Variables 4 | 5 | $white: #fff !default; 6 | $gray-100: #f8f9fa !default; 7 | $gray-200: #e9ecef !default; 8 | $gray-300: #dee2e6 !default; 9 | $gray-400: #ced4da !default; 10 | $gray-500: #adb5bd !default; 11 | $gray-600: #868e96 !default; 12 | $gray-700: #495057 !default; 13 | $gray-800: #343a40 !default; 14 | $gray-900: #212529 !default; 15 | $black: #000 !default; 16 | 17 | $blue: #007bff !default; 18 | $indigo: #6610f2 !default; 19 | $purple: #6f42c1 !default; 20 | $pink: #e83e8c !default; 21 | $red: #dc3545 !default; 22 | $orange: #fd7e14 !default; 23 | $yellow: #ffc107 !default; 24 | $green: #28a745 !default; 25 | $teal: #20c997 !default; 26 | $cyan: #17a2b8 !default; 27 | 28 | $primary: $blue !default; 29 | $secondary: $gray-600 !default; 30 | $success: $green !default; 31 | $info: $cyan !default; 32 | $warning: $yellow !default; 33 | $danger: $red !default; 34 | $light: $gray-100 !default; 35 | $dark: $gray-800 !default; 36 | -------------------------------------------------------------------------------- /vagrant-lab/html/scss/landing-page.scss: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.scss"; 3 | @import "mixins.scss"; 4 | // Global CSS 5 | @import "global.scss"; 6 | // Components 7 | @import "masthead.scss"; 8 | @import "showcase.scss"; 9 | @import "icons.scss"; 10 | @import "testimonials.scss"; 11 | @import "call-to-action.scss"; 12 | @import "footer.scss"; 13 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/bootstrap/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | box-sizing: border-box; 12 | } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 19 | } 20 | 21 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { 22 | display: block; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 28 | font-size: 1rem; 29 | font-weight: 400; 30 | line-height: 1.5; 31 | color: #212529; 32 | text-align: left; 33 | background-color: #fff; 34 | } 35 | 36 | [tabindex="-1"]:focus { 37 | outline: 0 !important; 38 | } 39 | 40 | hr { 41 | box-sizing: content-box; 42 | height: 0; 43 | overflow: visible; 44 | } 45 | 46 | h1, h2, h3, h4, h5, h6 { 47 | margin-top: 0; 48 | margin-bottom: 0.5rem; 49 | } 50 | 51 | p { 52 | margin-top: 0; 53 | margin-bottom: 1rem; 54 | } 55 | 56 | abbr[title], 57 | abbr[data-original-title] { 58 | text-decoration: underline; 59 | -webkit-text-decoration: underline dotted; 60 | text-decoration: underline dotted; 61 | cursor: help; 62 | border-bottom: 0; 63 | -webkit-text-decoration-skip-ink: none; 64 | text-decoration-skip-ink: none; 65 | } 66 | 67 | address { 68 | margin-bottom: 1rem; 69 | font-style: normal; 70 | line-height: inherit; 71 | } 72 | 73 | ol, 74 | ul, 75 | dl { 76 | margin-top: 0; 77 | margin-bottom: 1rem; 78 | } 79 | 80 | ol ol, 81 | ul ul, 82 | ol ul, 83 | ul ol { 84 | margin-bottom: 0; 85 | } 86 | 87 | dt { 88 | font-weight: 700; 89 | } 90 | 91 | dd { 92 | margin-bottom: .5rem; 93 | margin-left: 0; 94 | } 95 | 96 | blockquote { 97 | margin: 0 0 1rem; 98 | } 99 | 100 | b, 101 | strong { 102 | font-weight: bolder; 103 | } 104 | 105 | small { 106 | font-size: 80%; 107 | } 108 | 109 | sub, 110 | sup { 111 | position: relative; 112 | font-size: 75%; 113 | line-height: 0; 114 | vertical-align: baseline; 115 | } 116 | 117 | sub { 118 | bottom: -.25em; 119 | } 120 | 121 | sup { 122 | top: -.5em; 123 | } 124 | 125 | a { 126 | color: #007bff; 127 | text-decoration: none; 128 | background-color: transparent; 129 | } 130 | 131 | a:hover { 132 | color: #0056b3; 133 | text-decoration: underline; 134 | } 135 | 136 | a:not([href]):not([tabindex]) { 137 | color: inherit; 138 | text-decoration: none; 139 | } 140 | 141 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { 142 | color: inherit; 143 | text-decoration: none; 144 | } 145 | 146 | a:not([href]):not([tabindex]):focus { 147 | outline: 0; 148 | } 149 | 150 | pre, 151 | code, 152 | kbd, 153 | samp { 154 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 155 | font-size: 1em; 156 | } 157 | 158 | pre { 159 | margin-top: 0; 160 | margin-bottom: 1rem; 161 | overflow: auto; 162 | } 163 | 164 | figure { 165 | margin: 0 0 1rem; 166 | } 167 | 168 | img { 169 | vertical-align: middle; 170 | border-style: none; 171 | } 172 | 173 | svg { 174 | overflow: hidden; 175 | vertical-align: middle; 176 | } 177 | 178 | table { 179 | border-collapse: collapse; 180 | } 181 | 182 | caption { 183 | padding-top: 0.75rem; 184 | padding-bottom: 0.75rem; 185 | color: #6c757d; 186 | text-align: left; 187 | caption-side: bottom; 188 | } 189 | 190 | th { 191 | text-align: inherit; 192 | } 193 | 194 | label { 195 | display: inline-block; 196 | margin-bottom: 0.5rem; 197 | } 198 | 199 | button { 200 | border-radius: 0; 201 | } 202 | 203 | button:focus { 204 | outline: 1px dotted; 205 | outline: 5px auto -webkit-focus-ring-color; 206 | } 207 | 208 | input, 209 | button, 210 | select, 211 | optgroup, 212 | textarea { 213 | margin: 0; 214 | font-family: inherit; 215 | font-size: inherit; 216 | line-height: inherit; 217 | } 218 | 219 | button, 220 | input { 221 | overflow: visible; 222 | } 223 | 224 | button, 225 | select { 226 | text-transform: none; 227 | } 228 | 229 | select { 230 | word-wrap: normal; 231 | } 232 | 233 | button, 234 | [type="button"], 235 | [type="reset"], 236 | [type="submit"] { 237 | -webkit-appearance: button; 238 | } 239 | 240 | button:not(:disabled), 241 | [type="button"]:not(:disabled), 242 | [type="reset"]:not(:disabled), 243 | [type="submit"]:not(:disabled) { 244 | cursor: pointer; 245 | } 246 | 247 | button::-moz-focus-inner, 248 | [type="button"]::-moz-focus-inner, 249 | [type="reset"]::-moz-focus-inner, 250 | [type="submit"]::-moz-focus-inner { 251 | padding: 0; 252 | border-style: none; 253 | } 254 | 255 | input[type="radio"], 256 | input[type="checkbox"] { 257 | box-sizing: border-box; 258 | padding: 0; 259 | } 260 | 261 | input[type="date"], 262 | input[type="time"], 263 | input[type="datetime-local"], 264 | input[type="month"] { 265 | -webkit-appearance: listbox; 266 | } 267 | 268 | textarea { 269 | overflow: auto; 270 | resize: vertical; 271 | } 272 | 273 | fieldset { 274 | min-width: 0; 275 | padding: 0; 276 | margin: 0; 277 | border: 0; 278 | } 279 | 280 | legend { 281 | display: block; 282 | width: 100%; 283 | max-width: 100%; 284 | padding: 0; 285 | margin-bottom: .5rem; 286 | font-size: 1.5rem; 287 | line-height: inherit; 288 | color: inherit; 289 | white-space: normal; 290 | } 291 | 292 | progress { 293 | vertical-align: baseline; 294 | } 295 | 296 | [type="number"]::-webkit-inner-spin-button, 297 | [type="number"]::-webkit-outer-spin-button { 298 | height: auto; 299 | } 300 | 301 | [type="search"] { 302 | outline-offset: -2px; 303 | -webkit-appearance: none; 304 | } 305 | 306 | [type="search"]::-webkit-search-decoration { 307 | -webkit-appearance: none; 308 | } 309 | 310 | ::-webkit-file-upload-button { 311 | font: inherit; 312 | -webkit-appearance: button; 313 | } 314 | 315 | output { 316 | display: inline-block; 317 | } 318 | 319 | summary { 320 | display: list-item; 321 | cursor: pointer; 322 | } 323 | 324 | template { 325 | display: none; 326 | } 327 | 328 | [hidden] { 329 | display: none !important; 330 | } 331 | /*# sourceMappingURL=bootstrap-reboot.css.map */ -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/bootstrap/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/bootstrap/css/bootstrap-reboot.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACkBA,ECTA,QADA,SDaE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,4BAAA,YAMF,QAAA,MAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAUF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBEgFI,UAAA,KF9EJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KGlBF,sBH2BE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC1CF,0BDqDA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EACA,iCAAA,KAAA,yBAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QC/CF,GDkDA,GCnDA,GDsDE,WAAA,EACA,cAAA,KAGF,MClDA,MACA,MAFA,MDuDE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,ECnDA,ODqDE,YAAA,OAGF,MEpFI,UAAA,IF6FJ,ICxDA,ID0DE,SAAA,SE/FE,UAAA,IFiGF,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YI5KA,QJ+KE,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KIxLA,oCAAA,oCJ2LE,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC1DJ,KACA,IDkEA,ICjEA,KDqEE,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UErJE,UAAA,IFyJJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,IAGE,SAAA,OACA,eAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OAEE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBCrGF,ODwGA,MCtGA,SADA,OAEA,SD0GE,OAAA,EACA,YAAA,QEtPE,UAAA,QFwPF,YAAA,QAGF,OCxGA,MD0GE,SAAA,QAGF,OCxGA,OD0GE,eAAA,KAMF,OACE,UAAA,OCxGF,cACA,aACA,cD6GA,OAIE,mBAAA,OC5GF,6BACA,4BACA,6BD+GE,sBAKI,OAAA,QC/GN,gCACA,+BACA,gCDmHA,yBAIE,QAAA,EACA,aAAA,KClHF,qBDqHA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCrHA,2BACA,kBAFA,iBD+HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MElSI,UAAA,OFoSJ,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SGpIF,yCFGA,yCDuIE,OAAA,KGrIF,cH6IE,eAAA,KACA,mBAAA,KGzIF,yCHiJE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KGtJF,SH4JE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/brands.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Brands'; 7 | font-style: normal; 8 | font-weight: normal; 9 | font-display: auto; 10 | src: url("../webfonts/fa-brands-400.eot"); 11 | src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } 12 | 13 | .fab { 14 | font-family: 'Font Awesome 5 Brands'; } 15 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/brands.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/regular.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Free'; 7 | font-style: normal; 8 | font-weight: 400; 9 | font-display: auto; 10 | src: url("../webfonts/fa-regular-400.eot"); 11 | src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } 12 | 13 | .far { 14 | font-family: 'Font Awesome 5 Free'; 15 | font-weight: 400; } 16 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/solid.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Free'; 7 | font-style: normal; 8 | font-weight: 900; 9 | font-display: auto; 10 | src: url("../webfonts/fa-solid-900.eot"); 11 | src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } 12 | 13 | .fa, 14 | .fas { 15 | font-family: 'Font Awesome 5 Free'; 16 | font-weight: 900; } 17 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/svg-with-js.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | svg:not(:root).svg-inline--fa { 6 | overflow: visible; } 7 | 8 | .svg-inline--fa { 9 | display: inline-block; 10 | font-size: inherit; 11 | height: 1em; 12 | overflow: visible; 13 | vertical-align: -.125em; } 14 | .svg-inline--fa.fa-lg { 15 | vertical-align: -.225em; } 16 | .svg-inline--fa.fa-w-1 { 17 | width: 0.0625em; } 18 | .svg-inline--fa.fa-w-2 { 19 | width: 0.125em; } 20 | .svg-inline--fa.fa-w-3 { 21 | width: 0.1875em; } 22 | .svg-inline--fa.fa-w-4 { 23 | width: 0.25em; } 24 | .svg-inline--fa.fa-w-5 { 25 | width: 0.3125em; } 26 | .svg-inline--fa.fa-w-6 { 27 | width: 0.375em; } 28 | .svg-inline--fa.fa-w-7 { 29 | width: 0.4375em; } 30 | .svg-inline--fa.fa-w-8 { 31 | width: 0.5em; } 32 | .svg-inline--fa.fa-w-9 { 33 | width: 0.5625em; } 34 | .svg-inline--fa.fa-w-10 { 35 | width: 0.625em; } 36 | .svg-inline--fa.fa-w-11 { 37 | width: 0.6875em; } 38 | .svg-inline--fa.fa-w-12 { 39 | width: 0.75em; } 40 | .svg-inline--fa.fa-w-13 { 41 | width: 0.8125em; } 42 | .svg-inline--fa.fa-w-14 { 43 | width: 0.875em; } 44 | .svg-inline--fa.fa-w-15 { 45 | width: 0.9375em; } 46 | .svg-inline--fa.fa-w-16 { 47 | width: 1em; } 48 | .svg-inline--fa.fa-w-17 { 49 | width: 1.0625em; } 50 | .svg-inline--fa.fa-w-18 { 51 | width: 1.125em; } 52 | .svg-inline--fa.fa-w-19 { 53 | width: 1.1875em; } 54 | .svg-inline--fa.fa-w-20 { 55 | width: 1.25em; } 56 | .svg-inline--fa.fa-pull-left { 57 | margin-right: .3em; 58 | width: auto; } 59 | .svg-inline--fa.fa-pull-right { 60 | margin-left: .3em; 61 | width: auto; } 62 | .svg-inline--fa.fa-border { 63 | height: 1.5em; } 64 | .svg-inline--fa.fa-li { 65 | width: 2em; } 66 | .svg-inline--fa.fa-fw { 67 | width: 1.25em; } 68 | 69 | .fa-layers svg.svg-inline--fa { 70 | bottom: 0; 71 | left: 0; 72 | margin: auto; 73 | position: absolute; 74 | right: 0; 75 | top: 0; } 76 | 77 | .fa-layers { 78 | display: inline-block; 79 | height: 1em; 80 | position: relative; 81 | text-align: center; 82 | vertical-align: -.125em; 83 | width: 1em; } 84 | .fa-layers svg.svg-inline--fa { 85 | -webkit-transform-origin: center center; 86 | transform-origin: center center; } 87 | 88 | .fa-layers-text, .fa-layers-counter { 89 | display: inline-block; 90 | position: absolute; 91 | text-align: center; } 92 | 93 | .fa-layers-text { 94 | left: 50%; 95 | top: 50%; 96 | -webkit-transform: translate(-50%, -50%); 97 | transform: translate(-50%, -50%); 98 | -webkit-transform-origin: center center; 99 | transform-origin: center center; } 100 | 101 | .fa-layers-counter { 102 | background-color: #ff253a; 103 | border-radius: 1em; 104 | -webkit-box-sizing: border-box; 105 | box-sizing: border-box; 106 | color: #fff; 107 | height: 1.5em; 108 | line-height: 1; 109 | max-width: 5em; 110 | min-width: 1.5em; 111 | overflow: hidden; 112 | padding: .25em; 113 | right: 0; 114 | text-overflow: ellipsis; 115 | top: 0; 116 | -webkit-transform: scale(0.25); 117 | transform: scale(0.25); 118 | -webkit-transform-origin: top right; 119 | transform-origin: top right; } 120 | 121 | .fa-layers-bottom-right { 122 | bottom: 0; 123 | right: 0; 124 | top: auto; 125 | -webkit-transform: scale(0.25); 126 | transform: scale(0.25); 127 | -webkit-transform-origin: bottom right; 128 | transform-origin: bottom right; } 129 | 130 | .fa-layers-bottom-left { 131 | bottom: 0; 132 | left: 0; 133 | right: auto; 134 | top: auto; 135 | -webkit-transform: scale(0.25); 136 | transform: scale(0.25); 137 | -webkit-transform-origin: bottom left; 138 | transform-origin: bottom left; } 139 | 140 | .fa-layers-top-right { 141 | right: 0; 142 | top: 0; 143 | -webkit-transform: scale(0.25); 144 | transform: scale(0.25); 145 | -webkit-transform-origin: top right; 146 | transform-origin: top right; } 147 | 148 | .fa-layers-top-left { 149 | left: 0; 150 | right: auto; 151 | top: 0; 152 | -webkit-transform: scale(0.25); 153 | transform: scale(0.25); 154 | -webkit-transform-origin: top left; 155 | transform-origin: top left; } 156 | 157 | .fa-lg { 158 | font-size: 1.33333em; 159 | line-height: 0.75em; 160 | vertical-align: -.0667em; } 161 | 162 | .fa-xs { 163 | font-size: .75em; } 164 | 165 | .fa-sm { 166 | font-size: .875em; } 167 | 168 | .fa-1x { 169 | font-size: 1em; } 170 | 171 | .fa-2x { 172 | font-size: 2em; } 173 | 174 | .fa-3x { 175 | font-size: 3em; } 176 | 177 | .fa-4x { 178 | font-size: 4em; } 179 | 180 | .fa-5x { 181 | font-size: 5em; } 182 | 183 | .fa-6x { 184 | font-size: 6em; } 185 | 186 | .fa-7x { 187 | font-size: 7em; } 188 | 189 | .fa-8x { 190 | font-size: 8em; } 191 | 192 | .fa-9x { 193 | font-size: 9em; } 194 | 195 | .fa-10x { 196 | font-size: 10em; } 197 | 198 | .fa-fw { 199 | text-align: center; 200 | width: 1.25em; } 201 | 202 | .fa-ul { 203 | list-style-type: none; 204 | margin-left: 2.5em; 205 | padding-left: 0; } 206 | .fa-ul > li { 207 | position: relative; } 208 | 209 | .fa-li { 210 | left: -2em; 211 | position: absolute; 212 | text-align: center; 213 | width: 2em; 214 | line-height: inherit; } 215 | 216 | .fa-border { 217 | border: solid 0.08em #eee; 218 | border-radius: .1em; 219 | padding: .2em .25em .15em; } 220 | 221 | .fa-pull-left { 222 | float: left; } 223 | 224 | .fa-pull-right { 225 | float: right; } 226 | 227 | .fa.fa-pull-left, 228 | .fas.fa-pull-left, 229 | .far.fa-pull-left, 230 | .fal.fa-pull-left, 231 | .fab.fa-pull-left { 232 | margin-right: .3em; } 233 | 234 | .fa.fa-pull-right, 235 | .fas.fa-pull-right, 236 | .far.fa-pull-right, 237 | .fal.fa-pull-right, 238 | .fab.fa-pull-right { 239 | margin-left: .3em; } 240 | 241 | .fa-spin { 242 | -webkit-animation: fa-spin 2s infinite linear; 243 | animation: fa-spin 2s infinite linear; } 244 | 245 | .fa-pulse { 246 | -webkit-animation: fa-spin 1s infinite steps(8); 247 | animation: fa-spin 1s infinite steps(8); } 248 | 249 | @-webkit-keyframes fa-spin { 250 | 0% { 251 | -webkit-transform: rotate(0deg); 252 | transform: rotate(0deg); } 253 | 100% { 254 | -webkit-transform: rotate(360deg); 255 | transform: rotate(360deg); } } 256 | 257 | @keyframes fa-spin { 258 | 0% { 259 | -webkit-transform: rotate(0deg); 260 | transform: rotate(0deg); } 261 | 100% { 262 | -webkit-transform: rotate(360deg); 263 | transform: rotate(360deg); } } 264 | 265 | .fa-rotate-90 { 266 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; 267 | -webkit-transform: rotate(90deg); 268 | transform: rotate(90deg); } 269 | 270 | .fa-rotate-180 { 271 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; 272 | -webkit-transform: rotate(180deg); 273 | transform: rotate(180deg); } 274 | 275 | .fa-rotate-270 { 276 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; 277 | -webkit-transform: rotate(270deg); 278 | transform: rotate(270deg); } 279 | 280 | .fa-flip-horizontal { 281 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; 282 | -webkit-transform: scale(-1, 1); 283 | transform: scale(-1, 1); } 284 | 285 | .fa-flip-vertical { 286 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 287 | -webkit-transform: scale(1, -1); 288 | transform: scale(1, -1); } 289 | 290 | .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { 291 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 292 | -webkit-transform: scale(-1, -1); 293 | transform: scale(-1, -1); } 294 | 295 | :root .fa-rotate-90, 296 | :root .fa-rotate-180, 297 | :root .fa-rotate-270, 298 | :root .fa-flip-horizontal, 299 | :root .fa-flip-vertical, 300 | :root .fa-flip-both { 301 | -webkit-filter: none; 302 | filter: none; } 303 | 304 | .fa-stack { 305 | display: inline-block; 306 | height: 2em; 307 | position: relative; 308 | width: 2.5em; } 309 | 310 | .fa-stack-1x, 311 | .fa-stack-2x { 312 | bottom: 0; 313 | left: 0; 314 | margin: auto; 315 | position: absolute; 316 | right: 0; 317 | top: 0; } 318 | 319 | .svg-inline--fa.fa-stack-1x { 320 | height: 1em; 321 | width: 1.25em; } 322 | 323 | .svg-inline--fa.fa-stack-2x { 324 | height: 2em; 325 | width: 2.5em; } 326 | 327 | .fa-inverse { 328 | color: #fff; } 329 | 330 | .sr-only { 331 | border: 0; 332 | clip: rect(0, 0, 0, 0); 333 | height: 1px; 334 | margin: -1px; 335 | overflow: hidden; 336 | padding: 0; 337 | position: absolute; 338 | width: 1px; } 339 | 340 | .sr-only-focusable:active, .sr-only-focusable:focus { 341 | clip: auto; 342 | height: auto; 343 | margin: 0; 344 | overflow: visible; 345 | position: static; 346 | width: auto; } 347 | 348 | .svg-inline--fa .fa-primary { 349 | fill: var(--fa-primary-color, currentColor); 350 | opacity: 1; 351 | opacity: var(--fa-primary-opacity, 1); } 352 | 353 | .svg-inline--fa .fa-secondary { 354 | fill: var(--fa-secondary-color, currentColor); 355 | opacity: 0.4; 356 | opacity: var(--fa-secondary-opacity, 0.4); } 357 | 358 | .svg-inline--fa.fa-swap-opacity .fa-primary { 359 | opacity: 0.4; 360 | opacity: var(--fa-secondary-opacity, 0.4); } 361 | 362 | .svg-inline--fa.fa-swap-opacity .fa-secondary { 363 | opacity: 1; 364 | opacity: var(--fa-primary-opacity, 1); } 365 | 366 | .svg-inline--fa mask .fa-primary, 367 | .svg-inline--fa mask .fa-secondary { 368 | fill: black; } 369 | 370 | .fad.fa-inverse { 371 | color: #fff; } 372 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/svg-with-js.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/css/v4-shims.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400} -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/fontawesome-free/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/simple-line-icons/css/simple-line-icons.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'simple-line-icons'; 3 | src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0'); 4 | src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0#iefix') format('embedded-opentype'), url('../fonts/Simple-Line-Icons.woff2?v=2.4.0') format('woff2'), url('../fonts/Simple-Line-Icons.ttf?v=2.4.0') format('truetype'), url('../fonts/Simple-Line-Icons.woff?v=2.4.0') format('woff'), url('../fonts/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons') format('svg'); 5 | font-weight: normal; 6 | font-style: normal; 7 | } 8 | /* 9 | Use the following CSS code if you want to have a class per icon. 10 | Instead of a list of all class selectors, you can use the generic [class*="icon-"] selector, but it's slower: 11 | */ 12 | .icon-user, 13 | .icon-people, 14 | .icon-user-female, 15 | .icon-user-follow, 16 | .icon-user-following, 17 | .icon-user-unfollow, 18 | .icon-login, 19 | .icon-logout, 20 | .icon-emotsmile, 21 | .icon-phone, 22 | .icon-call-end, 23 | .icon-call-in, 24 | .icon-call-out, 25 | .icon-map, 26 | .icon-location-pin, 27 | .icon-direction, 28 | .icon-directions, 29 | .icon-compass, 30 | .icon-layers, 31 | .icon-menu, 32 | .icon-list, 33 | .icon-options-vertical, 34 | .icon-options, 35 | .icon-arrow-down, 36 | .icon-arrow-left, 37 | .icon-arrow-right, 38 | .icon-arrow-up, 39 | .icon-arrow-up-circle, 40 | .icon-arrow-left-circle, 41 | .icon-arrow-right-circle, 42 | .icon-arrow-down-circle, 43 | .icon-check, 44 | .icon-clock, 45 | .icon-plus, 46 | .icon-minus, 47 | .icon-close, 48 | .icon-event, 49 | .icon-exclamation, 50 | .icon-organization, 51 | .icon-trophy, 52 | .icon-screen-smartphone, 53 | .icon-screen-desktop, 54 | .icon-plane, 55 | .icon-notebook, 56 | .icon-mustache, 57 | .icon-mouse, 58 | .icon-magnet, 59 | .icon-energy, 60 | .icon-disc, 61 | .icon-cursor, 62 | .icon-cursor-move, 63 | .icon-crop, 64 | .icon-chemistry, 65 | .icon-speedometer, 66 | .icon-shield, 67 | .icon-screen-tablet, 68 | .icon-magic-wand, 69 | .icon-hourglass, 70 | .icon-graduation, 71 | .icon-ghost, 72 | .icon-game-controller, 73 | .icon-fire, 74 | .icon-eyeglass, 75 | .icon-envelope-open, 76 | .icon-envelope-letter, 77 | .icon-bell, 78 | .icon-badge, 79 | .icon-anchor, 80 | .icon-wallet, 81 | .icon-vector, 82 | .icon-speech, 83 | .icon-puzzle, 84 | .icon-printer, 85 | .icon-present, 86 | .icon-playlist, 87 | .icon-pin, 88 | .icon-picture, 89 | .icon-handbag, 90 | .icon-globe-alt, 91 | .icon-globe, 92 | .icon-folder-alt, 93 | .icon-folder, 94 | .icon-film, 95 | .icon-feed, 96 | .icon-drop, 97 | .icon-drawer, 98 | .icon-docs, 99 | .icon-doc, 100 | .icon-diamond, 101 | .icon-cup, 102 | .icon-calculator, 103 | .icon-bubbles, 104 | .icon-briefcase, 105 | .icon-book-open, 106 | .icon-basket-loaded, 107 | .icon-basket, 108 | .icon-bag, 109 | .icon-action-undo, 110 | .icon-action-redo, 111 | .icon-wrench, 112 | .icon-umbrella, 113 | .icon-trash, 114 | .icon-tag, 115 | .icon-support, 116 | .icon-frame, 117 | .icon-size-fullscreen, 118 | .icon-size-actual, 119 | .icon-shuffle, 120 | .icon-share-alt, 121 | .icon-share, 122 | .icon-rocket, 123 | .icon-question, 124 | .icon-pie-chart, 125 | .icon-pencil, 126 | .icon-note, 127 | .icon-loop, 128 | .icon-home, 129 | .icon-grid, 130 | .icon-graph, 131 | .icon-microphone, 132 | .icon-music-tone-alt, 133 | .icon-music-tone, 134 | .icon-earphones-alt, 135 | .icon-earphones, 136 | .icon-equalizer, 137 | .icon-like, 138 | .icon-dislike, 139 | .icon-control-start, 140 | .icon-control-rewind, 141 | .icon-control-play, 142 | .icon-control-pause, 143 | .icon-control-forward, 144 | .icon-control-end, 145 | .icon-volume-1, 146 | .icon-volume-2, 147 | .icon-volume-off, 148 | .icon-calendar, 149 | .icon-bulb, 150 | .icon-chart, 151 | .icon-ban, 152 | .icon-bubble, 153 | .icon-camrecorder, 154 | .icon-camera, 155 | .icon-cloud-download, 156 | .icon-cloud-upload, 157 | .icon-envelope, 158 | .icon-eye, 159 | .icon-flag, 160 | .icon-heart, 161 | .icon-info, 162 | .icon-key, 163 | .icon-link, 164 | .icon-lock, 165 | .icon-lock-open, 166 | .icon-magnifier, 167 | .icon-magnifier-add, 168 | .icon-magnifier-remove, 169 | .icon-paper-clip, 170 | .icon-paper-plane, 171 | .icon-power, 172 | .icon-refresh, 173 | .icon-reload, 174 | .icon-settings, 175 | .icon-star, 176 | .icon-symbol-female, 177 | .icon-symbol-male, 178 | .icon-target, 179 | .icon-credit-card, 180 | .icon-paypal, 181 | .icon-social-tumblr, 182 | .icon-social-twitter, 183 | .icon-social-facebook, 184 | .icon-social-instagram, 185 | .icon-social-linkedin, 186 | .icon-social-pinterest, 187 | .icon-social-github, 188 | .icon-social-google, 189 | .icon-social-reddit, 190 | .icon-social-skype, 191 | .icon-social-dribbble, 192 | .icon-social-behance, 193 | .icon-social-foursqare, 194 | .icon-social-soundcloud, 195 | .icon-social-spotify, 196 | .icon-social-stumbleupon, 197 | .icon-social-youtube, 198 | .icon-social-dropbox, 199 | .icon-social-vkontakte, 200 | .icon-social-steam { 201 | font-family: 'simple-line-icons'; 202 | speak: none; 203 | font-style: normal; 204 | font-weight: normal; 205 | font-variant: normal; 206 | text-transform: none; 207 | line-height: 1; 208 | /* Better Font Rendering =========== */ 209 | -webkit-font-smoothing: antialiased; 210 | -moz-osx-font-smoothing: grayscale; 211 | } 212 | .icon-user:before { 213 | content: "\e005"; 214 | } 215 | .icon-people:before { 216 | content: "\e001"; 217 | } 218 | .icon-user-female:before { 219 | content: "\e000"; 220 | } 221 | .icon-user-follow:before { 222 | content: "\e002"; 223 | } 224 | .icon-user-following:before { 225 | content: "\e003"; 226 | } 227 | .icon-user-unfollow:before { 228 | content: "\e004"; 229 | } 230 | .icon-login:before { 231 | content: "\e066"; 232 | } 233 | .icon-logout:before { 234 | content: "\e065"; 235 | } 236 | .icon-emotsmile:before { 237 | content: "\e021"; 238 | } 239 | .icon-phone:before { 240 | content: "\e600"; 241 | } 242 | .icon-call-end:before { 243 | content: "\e048"; 244 | } 245 | .icon-call-in:before { 246 | content: "\e047"; 247 | } 248 | .icon-call-out:before { 249 | content: "\e046"; 250 | } 251 | .icon-map:before { 252 | content: "\e033"; 253 | } 254 | .icon-location-pin:before { 255 | content: "\e096"; 256 | } 257 | .icon-direction:before { 258 | content: "\e042"; 259 | } 260 | .icon-directions:before { 261 | content: "\e041"; 262 | } 263 | .icon-compass:before { 264 | content: "\e045"; 265 | } 266 | .icon-layers:before { 267 | content: "\e034"; 268 | } 269 | .icon-menu:before { 270 | content: "\e601"; 271 | } 272 | .icon-list:before { 273 | content: "\e067"; 274 | } 275 | .icon-options-vertical:before { 276 | content: "\e602"; 277 | } 278 | .icon-options:before { 279 | content: "\e603"; 280 | } 281 | .icon-arrow-down:before { 282 | content: "\e604"; 283 | } 284 | .icon-arrow-left:before { 285 | content: "\e605"; 286 | } 287 | .icon-arrow-right:before { 288 | content: "\e606"; 289 | } 290 | .icon-arrow-up:before { 291 | content: "\e607"; 292 | } 293 | .icon-arrow-up-circle:before { 294 | content: "\e078"; 295 | } 296 | .icon-arrow-left-circle:before { 297 | content: "\e07a"; 298 | } 299 | .icon-arrow-right-circle:before { 300 | content: "\e079"; 301 | } 302 | .icon-arrow-down-circle:before { 303 | content: "\e07b"; 304 | } 305 | .icon-check:before { 306 | content: "\e080"; 307 | } 308 | .icon-clock:before { 309 | content: "\e081"; 310 | } 311 | .icon-plus:before { 312 | content: "\e095"; 313 | } 314 | .icon-minus:before { 315 | content: "\e615"; 316 | } 317 | .icon-close:before { 318 | content: "\e082"; 319 | } 320 | .icon-event:before { 321 | content: "\e619"; 322 | } 323 | .icon-exclamation:before { 324 | content: "\e617"; 325 | } 326 | .icon-organization:before { 327 | content: "\e616"; 328 | } 329 | .icon-trophy:before { 330 | content: "\e006"; 331 | } 332 | .icon-screen-smartphone:before { 333 | content: "\e010"; 334 | } 335 | .icon-screen-desktop:before { 336 | content: "\e011"; 337 | } 338 | .icon-plane:before { 339 | content: "\e012"; 340 | } 341 | .icon-notebook:before { 342 | content: "\e013"; 343 | } 344 | .icon-mustache:before { 345 | content: "\e014"; 346 | } 347 | .icon-mouse:before { 348 | content: "\e015"; 349 | } 350 | .icon-magnet:before { 351 | content: "\e016"; 352 | } 353 | .icon-energy:before { 354 | content: "\e020"; 355 | } 356 | .icon-disc:before { 357 | content: "\e022"; 358 | } 359 | .icon-cursor:before { 360 | content: "\e06e"; 361 | } 362 | .icon-cursor-move:before { 363 | content: "\e023"; 364 | } 365 | .icon-crop:before { 366 | content: "\e024"; 367 | } 368 | .icon-chemistry:before { 369 | content: "\e026"; 370 | } 371 | .icon-speedometer:before { 372 | content: "\e007"; 373 | } 374 | .icon-shield:before { 375 | content: "\e00e"; 376 | } 377 | .icon-screen-tablet:before { 378 | content: "\e00f"; 379 | } 380 | .icon-magic-wand:before { 381 | content: "\e017"; 382 | } 383 | .icon-hourglass:before { 384 | content: "\e018"; 385 | } 386 | .icon-graduation:before { 387 | content: "\e019"; 388 | } 389 | .icon-ghost:before { 390 | content: "\e01a"; 391 | } 392 | .icon-game-controller:before { 393 | content: "\e01b"; 394 | } 395 | .icon-fire:before { 396 | content: "\e01c"; 397 | } 398 | .icon-eyeglass:before { 399 | content: "\e01d"; 400 | } 401 | .icon-envelope-open:before { 402 | content: "\e01e"; 403 | } 404 | .icon-envelope-letter:before { 405 | content: "\e01f"; 406 | } 407 | .icon-bell:before { 408 | content: "\e027"; 409 | } 410 | .icon-badge:before { 411 | content: "\e028"; 412 | } 413 | .icon-anchor:before { 414 | content: "\e029"; 415 | } 416 | .icon-wallet:before { 417 | content: "\e02a"; 418 | } 419 | .icon-vector:before { 420 | content: "\e02b"; 421 | } 422 | .icon-speech:before { 423 | content: "\e02c"; 424 | } 425 | .icon-puzzle:before { 426 | content: "\e02d"; 427 | } 428 | .icon-printer:before { 429 | content: "\e02e"; 430 | } 431 | .icon-present:before { 432 | content: "\e02f"; 433 | } 434 | .icon-playlist:before { 435 | content: "\e030"; 436 | } 437 | .icon-pin:before { 438 | content: "\e031"; 439 | } 440 | .icon-picture:before { 441 | content: "\e032"; 442 | } 443 | .icon-handbag:before { 444 | content: "\e035"; 445 | } 446 | .icon-globe-alt:before { 447 | content: "\e036"; 448 | } 449 | .icon-globe:before { 450 | content: "\e037"; 451 | } 452 | .icon-folder-alt:before { 453 | content: "\e039"; 454 | } 455 | .icon-folder:before { 456 | content: "\e089"; 457 | } 458 | .icon-film:before { 459 | content: "\e03a"; 460 | } 461 | .icon-feed:before { 462 | content: "\e03b"; 463 | } 464 | .icon-drop:before { 465 | content: "\e03e"; 466 | } 467 | .icon-drawer:before { 468 | content: "\e03f"; 469 | } 470 | .icon-docs:before { 471 | content: "\e040"; 472 | } 473 | .icon-doc:before { 474 | content: "\e085"; 475 | } 476 | .icon-diamond:before { 477 | content: "\e043"; 478 | } 479 | .icon-cup:before { 480 | content: "\e044"; 481 | } 482 | .icon-calculator:before { 483 | content: "\e049"; 484 | } 485 | .icon-bubbles:before { 486 | content: "\e04a"; 487 | } 488 | .icon-briefcase:before { 489 | content: "\e04b"; 490 | } 491 | .icon-book-open:before { 492 | content: "\e04c"; 493 | } 494 | .icon-basket-loaded:before { 495 | content: "\e04d"; 496 | } 497 | .icon-basket:before { 498 | content: "\e04e"; 499 | } 500 | .icon-bag:before { 501 | content: "\e04f"; 502 | } 503 | .icon-action-undo:before { 504 | content: "\e050"; 505 | } 506 | .icon-action-redo:before { 507 | content: "\e051"; 508 | } 509 | .icon-wrench:before { 510 | content: "\e052"; 511 | } 512 | .icon-umbrella:before { 513 | content: "\e053"; 514 | } 515 | .icon-trash:before { 516 | content: "\e054"; 517 | } 518 | .icon-tag:before { 519 | content: "\e055"; 520 | } 521 | .icon-support:before { 522 | content: "\e056"; 523 | } 524 | .icon-frame:before { 525 | content: "\e038"; 526 | } 527 | .icon-size-fullscreen:before { 528 | content: "\e057"; 529 | } 530 | .icon-size-actual:before { 531 | content: "\e058"; 532 | } 533 | .icon-shuffle:before { 534 | content: "\e059"; 535 | } 536 | .icon-share-alt:before { 537 | content: "\e05a"; 538 | } 539 | .icon-share:before { 540 | content: "\e05b"; 541 | } 542 | .icon-rocket:before { 543 | content: "\e05c"; 544 | } 545 | .icon-question:before { 546 | content: "\e05d"; 547 | } 548 | .icon-pie-chart:before { 549 | content: "\e05e"; 550 | } 551 | .icon-pencil:before { 552 | content: "\e05f"; 553 | } 554 | .icon-note:before { 555 | content: "\e060"; 556 | } 557 | .icon-loop:before { 558 | content: "\e064"; 559 | } 560 | .icon-home:before { 561 | content: "\e069"; 562 | } 563 | .icon-grid:before { 564 | content: "\e06a"; 565 | } 566 | .icon-graph:before { 567 | content: "\e06b"; 568 | } 569 | .icon-microphone:before { 570 | content: "\e063"; 571 | } 572 | .icon-music-tone-alt:before { 573 | content: "\e061"; 574 | } 575 | .icon-music-tone:before { 576 | content: "\e062"; 577 | } 578 | .icon-earphones-alt:before { 579 | content: "\e03c"; 580 | } 581 | .icon-earphones:before { 582 | content: "\e03d"; 583 | } 584 | .icon-equalizer:before { 585 | content: "\e06c"; 586 | } 587 | .icon-like:before { 588 | content: "\e068"; 589 | } 590 | .icon-dislike:before { 591 | content: "\e06d"; 592 | } 593 | .icon-control-start:before { 594 | content: "\e06f"; 595 | } 596 | .icon-control-rewind:before { 597 | content: "\e070"; 598 | } 599 | .icon-control-play:before { 600 | content: "\e071"; 601 | } 602 | .icon-control-pause:before { 603 | content: "\e072"; 604 | } 605 | .icon-control-forward:before { 606 | content: "\e073"; 607 | } 608 | .icon-control-end:before { 609 | content: "\e074"; 610 | } 611 | .icon-volume-1:before { 612 | content: "\e09f"; 613 | } 614 | .icon-volume-2:before { 615 | content: "\e0a0"; 616 | } 617 | .icon-volume-off:before { 618 | content: "\e0a1"; 619 | } 620 | .icon-calendar:before { 621 | content: "\e075"; 622 | } 623 | .icon-bulb:before { 624 | content: "\e076"; 625 | } 626 | .icon-chart:before { 627 | content: "\e077"; 628 | } 629 | .icon-ban:before { 630 | content: "\e07c"; 631 | } 632 | .icon-bubble:before { 633 | content: "\e07d"; 634 | } 635 | .icon-camrecorder:before { 636 | content: "\e07e"; 637 | } 638 | .icon-camera:before { 639 | content: "\e07f"; 640 | } 641 | .icon-cloud-download:before { 642 | content: "\e083"; 643 | } 644 | .icon-cloud-upload:before { 645 | content: "\e084"; 646 | } 647 | .icon-envelope:before { 648 | content: "\e086"; 649 | } 650 | .icon-eye:before { 651 | content: "\e087"; 652 | } 653 | .icon-flag:before { 654 | content: "\e088"; 655 | } 656 | .icon-heart:before { 657 | content: "\e08a"; 658 | } 659 | .icon-info:before { 660 | content: "\e08b"; 661 | } 662 | .icon-key:before { 663 | content: "\e08c"; 664 | } 665 | .icon-link:before { 666 | content: "\e08d"; 667 | } 668 | .icon-lock:before { 669 | content: "\e08e"; 670 | } 671 | .icon-lock-open:before { 672 | content: "\e08f"; 673 | } 674 | .icon-magnifier:before { 675 | content: "\e090"; 676 | } 677 | .icon-magnifier-add:before { 678 | content: "\e091"; 679 | } 680 | .icon-magnifier-remove:before { 681 | content: "\e092"; 682 | } 683 | .icon-paper-clip:before { 684 | content: "\e093"; 685 | } 686 | .icon-paper-plane:before { 687 | content: "\e094"; 688 | } 689 | .icon-power:before { 690 | content: "\e097"; 691 | } 692 | .icon-refresh:before { 693 | content: "\e098"; 694 | } 695 | .icon-reload:before { 696 | content: "\e099"; 697 | } 698 | .icon-settings:before { 699 | content: "\e09a"; 700 | } 701 | .icon-star:before { 702 | content: "\e09b"; 703 | } 704 | .icon-symbol-female:before { 705 | content: "\e09c"; 706 | } 707 | .icon-symbol-male:before { 708 | content: "\e09d"; 709 | } 710 | .icon-target:before { 711 | content: "\e09e"; 712 | } 713 | .icon-credit-card:before { 714 | content: "\e025"; 715 | } 716 | .icon-paypal:before { 717 | content: "\e608"; 718 | } 719 | .icon-social-tumblr:before { 720 | content: "\e00a"; 721 | } 722 | .icon-social-twitter:before { 723 | content: "\e009"; 724 | } 725 | .icon-social-facebook:before { 726 | content: "\e00b"; 727 | } 728 | .icon-social-instagram:before { 729 | content: "\e609"; 730 | } 731 | .icon-social-linkedin:before { 732 | content: "\e60a"; 733 | } 734 | .icon-social-pinterest:before { 735 | content: "\e60b"; 736 | } 737 | .icon-social-github:before { 738 | content: "\e60c"; 739 | } 740 | .icon-social-google:before { 741 | content: "\e60d"; 742 | } 743 | .icon-social-reddit:before { 744 | content: "\e60e"; 745 | } 746 | .icon-social-skype:before { 747 | content: "\e60f"; 748 | } 749 | .icon-social-dribbble:before { 750 | content: "\e00d"; 751 | } 752 | .icon-social-behance:before { 753 | content: "\e610"; 754 | } 755 | .icon-social-foursqare:before { 756 | content: "\e611"; 757 | } 758 | .icon-social-soundcloud:before { 759 | content: "\e612"; 760 | } 761 | .icon-social-spotify:before { 762 | content: "\e613"; 763 | } 764 | .icon-social-stumbleupon:before { 765 | content: "\e614"; 766 | } 767 | .icon-social-youtube:before { 768 | content: "\e008"; 769 | } 770 | .icon-social-dropbox:before { 771 | content: "\e00c"; 772 | } 773 | .icon-social-vkontakte:before { 774 | content: "\e618"; 775 | } 776 | .icon-social-steam:before { 777 | content: "\e620"; 778 | } 779 | -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff -------------------------------------------------------------------------------- /vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glaucioguerra/udemy-devops-mao-na-massa/cb22153c88de906ea72a7dc2c3d55330d9ee45f1/vagrant-lab/html/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 -------------------------------------------------------------------------------- /vagrant-lab/provision.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | echo "Installing Apache and setting it up..." 3 | yum install -y httpd >/dev/null 2>&1 4 | cp -r /vagrant/html/* /var/www/html/ 5 | service httpd start --------------------------------------------------------------------------------