!Alert! code.dlang.org down
Seb
seb at wilzba.ch
Wed Jan 10 10:53:42 UTC 2018
On Wednesday, 10 January 2018 at 10:36:57 UTC, Daniel Kozak wrote:
> I am able to provide my VPS for mirroring too. Is there a
> tutorial how to do it?
The dub-registry binary can be started with
`--mirror=https://code.dlang.org`
Martin even an Ansible script for dub-mirror.dlang.io:
https://github.com/dlang/ci/blob/master/ansible/roles/dub_registry_mirror/tasks/main.yml
It boils down to these tasks:
1) git clone https://github.com/dlang/dub-registry
2) dub # <- maybe -b release
3) Install mongo and start
sudo apt-get install mongodb && sudo systemctl enable mongodb &&
sudo systemctl start mongodb
4) Configure a systemd service
Here's my systemd service:
> /etc/systemd/system/dub-registry.service
-----
[Unit]
Description=DUB registry
OnFailure=unit-status-mail@%n.service
[Service]
Environment="PORT=9001"
ExecStart=/opt/projects/dub-registry/dub-registry --port 8005
--mirror=https://code.dlang.org --hostname=code-mirror2.dlang.org
--vv
WorkingDirectory=/opt/projects/dub-registry
Restart=always
RestartSec=30
User=dub-registry
[Install]
WantedBy=multi-user.target
------
> [Unit]
Description=Unit Status Mailer Service
After=network.target
[Service]
Type=simple
ExecStart=/opt/bin/unit-status-mail.sh "%I" "Hostname: %H"
"Machine ID: %m" "Boot ID: %b"
----
> /opt/bin/unit-status-mail.sh
----
#!/bin/bash
MAILTO="root"
MAILFROM="unit-status-mailer"
UNIT=$1
EXTRA=""
for e in "${@:2}"; do
EXTRA+="$e"$'\n'
done
UNITSTATUS=$(systemctl status $UNIT)
UNITLOG=$(journalctl -u $UNIT -r | head -n 100)
sendmail $MAILTO <<EOF
From:$MAILFROM
To:$MAILTO
Subject:Status of: $UNIT
Status report for unit: $UNIT
$EXTRA
$UNITSTATUS
$UNITLOG
EOF
echo -e "Status mail sent to: $MAILTO for unit: $UNIT"
---
5) Configure Nginx
> /etc/nginx/sites-available/dub-mirror
---
server {
listen 80;
listen [::]:80;
server_name code-mirror2.dlang.io;
location / {
proxy_pass http://localhost:8005;
}
}
---
6) Configure Letsencrypt for SSL (optional)
7) Add yourself to this list:
https://github.com/dlang/dub/blob/master/source/dub/dub.d#L64
Note that with a few tweaks it's possible to run the dub-registry
on Heroku:
https://github.com/dlang/dub-registry/pull/231
More information about the Digitalmars-d
mailing list