From dbcef5c42884f3cb398d9f4432a7fb8316b133f8 Mon Sep 17 00:00:00 2001 From: pierreozoux Date: Thu, 11 Feb 2016 11:19:49 +0000 Subject: [PATCH] Proper installation instructions --- INSTALL.md | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++ fresh_install | 119 ---------------------------------------------- 2 files changed, 127 insertions(+), 119 deletions(-) create mode 100644 INSTALL.md delete mode 100644 fresh_install diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..5e81d84 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,127 @@ +# Instructions to install LibrePaaS + +## Requirements + +- API key on Namecheap + +## Recommendation +- ssd on /dev/sda +- hdd on /dev/sdb +- hdd on /dev/sdc + +# Installation + +Replace the following variables with yours: +IP +hostname + +``` + +ssh -o "StrictHostKeyChecking no" root@$IP + +fdisk -l #find your ssd + +# Setup raid +cat > /etc/mdadm.conf << EOF +MAILADDR dev@null.org +EOF +mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb /dev/sdc +mkfs.ext4 /dev/md0 + +cat > cloud-config.tmp << EOF +#cloud-config + +hostname: $hostname +ssh_authorized_keys: + - #your ssh public key here +EOF + +wget https://raw.github.com/coreos/init/master/bin/coreos-install +bash coreos-install -d /dev/sda -c cloud-config + +reboot +``` + +``` +ssh core@$IP +sudo su - + +# Add swap +fallocate -l 8192m /swap +chmod 600 /swap +mkswap /swap + +cat > /var/lib/coreos-install/user_data << EOF +#cloud-config + +hostname: $hostname +ssh_authorized_keys: + - #your ssh public key here +write_files: + - path: /etc/sysctl.d/aio-max.conf + permissions: 0644 + owner: root + content: "fs.aio-max-nr = 1048576" + - path: /etc/hosts + permissions: 0644 + owner: root + content: | + 127.0.0.1 localhost + 255.255.255.255 broadcasthost + ::1 localhost + - path: /etc/environment + permission: 0644 + owner: root + content: | + NAMECHEAP_URL="namecheap.com" + NAMECHEAP_API_USER="pierreo" + NAMECHEAP_API_KEY= + IP=`curl -s http://icanhazip.com/` + FirstName="Pierre" + LastName="Ozoux" + Address="23CalcadaSaoVicente" + PostalCode="1100-567" + Country="Portugal" + Phone="+351.967184553" + EmailAddress="pierre@ozoux.net" + City="Lisbon" + CountryCode="PT" + BACKUP_DESTINATION=root@xxxxx:port + MAIL_USER=contact%40indie.host + MAIL_PASS= + MAIL_HOST=mail.indie.host + MAIL_PORT=587 +coreos: + update: + reboot-strategy: off + units: + - name: systemd-sysctl.service + command: restart + - name: data.mount + command: start + content: | + [Mount] + What=/dev/md0 + Where=/data + Type=ext4 + - name: swap.service + command: start + content: | + [Service] + Type=oneshot + ExecStart=/sbin/swapon /swap +EOF + +# Create Directory structure +git clone https://github.com/indiehosters/LibrePaaS.git /indiehosters +mkdir /{data,system} +mkdir /data/trash + +# Install unit-files and utils +cp /indiehosters/unit-files/* /etc/systemd/system && systemctl daemon-reload +cp /indiehosters/utils/* /opt/bin/ + +mkdir -p /opt/bin +DOCKER_COMPOSE_VERSION=1.6.0 +curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > /opt/bin/docker-compose +chmod +x /opt/bin/docker-compose diff --git a/fresh_install b/fresh_install deleted file mode 100644 index cf4cf94..0000000 --- a/fresh_install +++ /dev/null @@ -1,119 +0,0 @@ -IP= -hostname= -ssh -o "StrictHostKeyChecking no" root@$IP - -fdisk -l #find your ssd - -#Check the state of the drives -smartctl -a /dev/sda -smartctl -a /dev/sdb -smartctl -a /dev/sdc - -wget https://raw.github.com/coreos/init/master/bin/coreos-install -cat > cloud-config << EOF -#cloud-config - -hostname: $hostname -ssh_authorized_keys: - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCTDu9fp/BkVv7afu4HWBf9Ou/Bu0A0wmT8ELx6w2LguywKVYytubS++j1cuZ90BmK7pso22gJL8JA+z3I4YSzzX07E+/Tauug/xqWY88nk2yykIbRdYwnBQ545yDoK9b2MG+3Ih9NFNo4CTe0hfm9OC8Ztd+6/tJI85JUNjISSEuGhwkfCHUKwu5kUQDLCJg5hzbq0mpE/CAnXiX6Vs2vJL2RHuvM37CzuqjFqJq+k7OYW1Dz32PrFxOefCHCHXI5Oq2a6lWcBLHmYPx8KDk5li7XSm3HirPoPOpSgfZmFtTM7bbJmOjlJgD27tDUgM94yZoRB9qFSM3103CX1qRfLfDd/e9BDI6jbG/Jdq4Zt1PdOb4V6ee86DzO+PIOqv0P9tImMAwZDve9EfcaNjqNhWeY4oUbEuvsZ5R5BrFGvg10D7WsVs1iIJ//XYaiC+D5PG6iDjXsvR7j+auLGGMOjZNEvIJcqDmtTi2mQsZ4n9Y9M0zAKCKIGkKS+JQqZZUToRA7YV+C7JniTlxg4UZxVQgpsGhwxnWuc8YeM99byB6lbWqGTewVbDy97zXcJwHfVgx0oUNwQl0qwZ+B1LX8Cw1eei2vBzHlsVpx0G/RKn4ai1puSyYeFyTOWIc38HZ8d4ZdL2LYx2PqCTYOfHYfLY4q3Mj2SDxr/fq++0F7jbQ== pierre@ozoux.net - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDoQ/sHcgXwcmTWDAd+8uc7dk7eIpLv0T1i8gkQOamBaCV+Y9SXDlUcveWHXa0JTZJTzXn/m/O1VE5AlqP3TEKSPBxnVBya6LWuLlNNGBKmponWXIb5aIcpKHicojEcrt1KjQyc3UAKRcLz7ajgsQ+kj2GXcbXlCGIsEUx08MIV1bowxmHIKNDe/SaBUAVsHZFuE7R4okQxPYJfU5SeHogUtwon99ND4PohEmR0IYtXGTNu4ky2j+qBAIZLbXa0AR20v4dvE5apZKwmD/Uyv7sTPApm0KfqRozgi/T5Ba0OcR79AAm1XaBzT78YTO+41eV3EHTiH1Y/XIQR75iMdfTPGWcaSlU6qMoLSJ8OsGX9qOJCoWNzJSl2j7OgHchhNmf6uuZkvBR2hOpTQgDsDHHk8LVFiQ3VlDdL6mWYoxRCmKil7lycAczx7MdjfEU6QGdEfRKWpwWKV8qJEIJqhVMVKgqJOk+fxyAmC+oije+7JUEa64r30A6rwsTUkO8cI5KxxksYDsQYmZPvAMM3pxi01WTxt01gG//vC+4Hxg1OZdPwUlJdYEGKhGVSa127eKobpb460avon24a1OW9qCpiv79/qOrKUEjQX8PpPlG6oFZlAzFkLkNDDMMqhePOXapgpyclbemFC+5Xj2w/8gVJJZotPr1OzTjzfqFAUOwqw== pboua@Peters-MacBook-Air.local -write_files: - - path: /etc/sysctl.d/aio-max.conf - permissions: 0644 - owner: root - content: "fs.aio-max-nr = 1048576" - - path: /etc/hosts - permissions: 0644 - owner: root - content: | - 127.0.0.1 localhost - 255.255.255.255 broadcasthost - ::1 localhost -coreos: - update: - reboot-strategy: off - units: - - name: systemd-sysctl.service - command: restart - - name: data-domains.mount - command: start - content: | - [Mount] - What=/dev/md0 - Where=/data/domains - Type=ext4 -EOF - -bash coreos-install -d /dev/sda -c cloud-config - -reboot - - -ssh core@$IP - -sudo su - - -# Create Directory structure -mkdir -p /data/domains -git clone https://github.com/indiehosters/LibrePaaS.git /data/indiehosters - -# Install unit-files -cp /data/indiehosters/unit-files/* /etc/systemd/system && systemctl daemon-reload - -# Setup raid -cat > /etc/mdadm.conf << EOF -MAILADDR support@indie.host -mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb /dev/sdc -EOF - -mkfs.ext4 /dev/md0 -coreos-cloudinit --from-file=/var/lib/coreos-install/user_data - -cat > /etc/environment << EOF -NAMECHEAP_URL="namecheap.com" -NAMECHEAP_API_USER="pierreo" -NAMECHEAP_API_KEY= -IP=`curl -s http://icanhazip.com/` -FirstName="Pierre" -LastName="Ozoux" -Address="23CalcadaSaoVicente" -PostalCode="1100-567" -Country="Portugal" -Phone="+351.967184553" -EmailAddress="pierre@ozoux.net" -City="Lisbon" -CountryCode="PT" - -BACKUP_DESTINATION=root@xxxxx:port -ENCRYPT_KEY= -PASSPHRASE= #encrypt key passphrase -mail_username=contact%40indie.host -mail_password= -mail_hostname=mail.indie.host -MAIL_HOST=mail.indie.host -MAIL_PORT=587 -MAIL_DOMAIN=indie.host -EOF - -source /etc/environment - -ssh-keygen -t rsa -b 4096 -C "root@$hostname" - -# add the new public key to your backup server -ssh -o "StrictHostKeyChecking no" -o "BatchMode yes" -o "HostKeyAlgorithms=ssh-rsa" root@5.9.102.20 -p port exit - -gpg --gen-key - -mkdir -p /opt/bin -DOCKER_COMPOSE_VERSION=1.4.2 -curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > /opt/bin/docker-compose -chmod +x /opt/bin/docker-compose - -# add swap -cd /data -fallocate -l 8192m ./swap -chmod 600 ./swap -mkswap ./swap -systemctl status swapon -systemctl start swapon -systemctl status swapon