propellor/config-joey.hs

454 lines
17 KiB
Haskell
Raw Normal View History

2014-04-19 21:16:13 +00:00
-- This is the live config file used by propellor's author.
2014-08-29 23:07:18 +00:00
-- https://propellor.branchable.com/
module Main where
2014-04-03 16:06:58 +00:00
import Propellor
import Propellor.CmdLine
2014-04-09 04:54:27 +00:00
import Propellor.Property.Scheduled
2014-04-03 16:06:58 +00:00
import qualified Propellor.Property.File as File
import qualified Propellor.Property.Apt as Apt
import qualified Propellor.Property.Network as Network
2014-09-09 17:58:01 +00:00
import qualified Propellor.Property.Service as Service
2014-04-03 16:06:58 +00:00
import qualified Propellor.Property.Ssh as Ssh
2014-07-17 19:06:24 +00:00
import qualified Propellor.Property.Gpg as Gpg
2014-04-03 16:06:58 +00:00
import qualified Propellor.Property.Cron as Cron
import qualified Propellor.Property.Sudo as Sudo
import qualified Propellor.Property.User as User
import qualified Propellor.Property.Hostname as Hostname
import qualified Propellor.Property.Tor as Tor
2014-04-10 05:46:33 +00:00
import qualified Propellor.Property.Dns as Dns
2014-04-08 20:58:11 +00:00
import qualified Propellor.Property.OpenId as OpenId
2014-04-03 16:06:58 +00:00
import qualified Propellor.Property.Docker as Docker
2014-04-10 06:51:25 +00:00
import qualified Propellor.Property.Git as Git
2014-04-14 00:22:35 +00:00
import qualified Propellor.Property.Apache as Apache
2014-04-14 19:35:29 +00:00
import qualified Propellor.Property.Postfix as Postfix
2014-07-07 06:58:34 +00:00
import qualified Propellor.Property.Grub as Grub
2014-07-17 19:06:24 +00:00
import qualified Propellor.Property.Obnam as Obnam
2014-05-23 16:30:25 +00:00
import qualified Propellor.Property.HostingProvider.DigitalOcean as DigitalOcean
import qualified Propellor.Property.HostingProvider.CloudAtCost as CloudAtCost
2014-07-07 07:08:12 +00:00
import qualified Propellor.Property.HostingProvider.Linode as Linode
2014-04-03 16:06:58 +00:00
import qualified Propellor.Property.SiteSpecific.GitHome as GitHome
import qualified Propellor.Property.SiteSpecific.GitAnnexBuilder as GitAnnexBuilder
import qualified Propellor.Property.SiteSpecific.JoeySites as JoeySites
2014-04-19 15:23:09 +00:00
2014-05-28 05:32:54 +00:00
main :: IO () -- _ ______`| ,-.__
main = defaultMain hosts -- / \___-=O`/|O`/__| (____.'
{- Propellor -- \ / | / ) _.-"-._
Deployed -} -- `/-==__ _/__|/__=-| ( \_
hosts :: [Host] -- * \ | | '--------'
2014-08-29 17:15:44 +00:00
hosts = -- (o) `
[ darkstar
, clam
, orca
, kite
, diatom
, elephant
] ++ containers ++ monsters
darkstar :: Host
darkstar = host "darkstar.kitenet.net"
& ipv6 "2001:4830:1600:187::2" -- sixxs tunnel
& Apt.buildDep ["git-annex"] `period` Daily
& Docker.configured
! Docker.docked hosts "android-git-annex"
2014-10-10 18:22:31 +00:00
! Docker.docked hosts "webserver"
2014-08-29 17:15:44 +00:00
clam :: Host
clam = standardSystem "clam.kitenet.net" Unstable "amd64"
[ "Unreliable server. Anything here may be lost at any time!" ]
& ipv4 "162.248.9.29"
& CloudAtCost.decruft
& Apt.unattendedUpgrades
& Network.ipv6to4
& Tor.isBridge
& Postfix.satellite
& Docker.configured
& Docker.garbageCollected `period` Daily
2014-08-29 23:07:18 +00:00
& Docker.docked hosts "webserver"
2014-08-29 23:17:28 +00:00
& File.dirExists "/var/www/html"
2014-08-29 23:24:16 +00:00
& File.notPresent "/var/www/html/index.html"
2014-08-29 23:22:51 +00:00
& "/var/www/index.html" `File.hasContent` ["hello, world"]
2014-08-29 23:09:12 +00:00
& alias "helloworld.kitenet.net"
2014-08-29 23:07:18 +00:00
2014-09-23 17:25:47 +00:00
-- ssh on some extra ports to deal with horrible networks
-- while travelling
& alias "travelling.kitenet.net"
! Ssh.listenPort 80
! Ssh.listenPort 443
2014-08-29 17:15:44 +00:00
orca :: Host
orca = standardSystem "orca.kitenet.net" Unstable "amd64"
[ "Main git-annex build box." ]
& ipv4 "138.38.108.179"
& Apt.unattendedUpgrades
& Postfix.satellite
& Docker.configured
& Docker.docked hosts "amd64-git-annex-builder"
& Docker.docked hosts "i386-git-annex-builder"
& Docker.docked hosts "android-git-annex-builder"
& Docker.docked hosts "armel-git-annex-builder-companion"
& Docker.docked hosts "armel-git-annex-builder"
& Docker.garbageCollected `period` Daily
& Apt.buildDep ["git-annex"] `period` Daily
2014-04-11 03:20:12 +00:00
2014-08-29 17:15:44 +00:00
-- This is not a complete description of kite, since it's a
-- multiuser system with eg, user passwords that are not deployed
-- with propellor.
kite :: Host
kite = standardSystemUnhardened "kite.kitenet.net" Unstable "amd64"
[ "Welcome to the new kitenet.net server!"
]
2014-10-08 17:17:11 +00:00
& ipv4 "66.228.36.95"
2014-09-08 15:56:35 +00:00
& ipv6 "2600:3c03::f03c:91ff:fe73:b0d2"
2014-09-08 14:56:08 +00:00
& alias "kitenet.net"
& alias "wren.kitenet.net" -- temporary
2014-08-29 17:15:44 +00:00
& Apt.installed ["linux-image-amd64"]
& Linode.chainPVGrub 5
& Apt.unattendedUpgrades
& Apt.installed ["systemd"]
& Ssh.hostKeys (Context "kitenet.net")
2014-09-10 19:43:32 +00:00
& Ssh.passwordAuthentication True
2014-08-29 17:15:44 +00:00
-- Since ssh password authentication is allowed:
& Apt.serviceInstalledRunning "fail2ban"
& Obnam.backup "/" "33 1 * * *"
[ "--repository=sftp://joey@eubackup.kitenet.net/~/lib/backup/kite.obnam"
, "--client-name=kitenet.net"
2014-09-08 14:56:08 +00:00
, "--encrypt-with=98147487"
2014-08-29 17:15:44 +00:00
, "--exclude=/var/cache"
, "--exclude=/var/tmp"
, "--exclude=/home/joey/lib"
, "--exclude=.*/tmp/"
, "--one-file-system"
] Obnam.OnlyClient
`requires` Gpg.keyImported "98147487" "root"
`requires` Ssh.keyImported SshRsa "root"
(Context "kite.kitenet.net")
`requires` Ssh.knownHost hosts "eubackup.kitenet.net" "root"
2014-09-08 18:44:34 +00:00
& Apt.serviceInstalledRunning "ntp"
2014-09-08 18:48:42 +00:00
& "/etc/timezone" `File.hasContent` ["US/Eastern"]
2014-08-29 17:15:44 +00:00
2014-09-08 14:56:08 +00:00
& alias "smtp.kitenet.net"
& alias "imap.kitenet.net"
& alias "pop.kitenet.net"
& alias "mail.kitenet.net"
2014-08-29 17:15:44 +00:00
& JoeySites.kiteMailServer
& JoeySites.legacyWebSites
2014-09-09 17:39:24 +00:00
& alias "bitlbee.kitenet.net"
& Apt.serviceInstalledRunning "bitlbee"
2014-09-09 17:51:04 +00:00
& "/etc/bitlbee/bitlbee.conf" `File.hasContent`
[ "[settings]"
, "User = bitlbee"
, "AuthMode = Registered"
, "[defaults]"
2014-09-09 19:21:47 +00:00
]
`onChange` Service.restarted "bitlbee"
& "/etc/default/bitlbee" `File.containsLine` "BITLBEE_PORT=\"6767\""
`onChange` Service.restarted "bitlbee"
2014-09-09 17:39:24 +00:00
2014-08-29 17:15:44 +00:00
& Apt.installed
["git-annex", "myrepos"
, "build-essential", "make"
2014-09-08 18:58:34 +00:00
, "rss2email", "archivemail"
, "devscripts"
2014-08-29 17:15:44 +00:00
-- Some users have zsh as their login shell.
, "zsh"
2014-07-07 07:22:53 +00:00
]
2014-07-18 00:01:21 +00:00
2014-08-29 17:15:44 +00:00
diatom :: Host
diatom = standardSystem "diatom.kitenet.net" (Stable "wheezy") "amd64"
2014-08-29 17:15:44 +00:00
[ "Important stuff that needs not too much memory or CPU." ]
& ipv4 "107.170.31.195"
2014-07-18 03:45:46 +00:00
2014-08-29 17:15:44 +00:00
& DigitalOcean.distroKernel
& Ssh.hostKeys (Context "diatom.kitenet.net")
& Apt.unattendedUpgrades
& Apt.serviceInstalledRunning "ntp"
& Postfix.satellite
2014-08-29 17:15:44 +00:00
-- Diatom has 500 mb of memory, so tune for that.
& JoeySites.obnamLowMem
& Apt.serviceInstalledRunning "swapspace"
2014-04-14 00:22:35 +00:00
2014-08-29 17:15:44 +00:00
& Apt.serviceInstalledRunning "apache2"
& JoeySites.kitenetHttps
& Apache.multiSSL
& File.ownerGroup "/srv/web" "joey" "joey"
& Apt.installed ["analog"]
& alias "git.kitenet.net"
& alias "git.joeyh.name"
& JoeySites.gitServer hosts
2014-04-13 15:58:22 +00:00
2014-08-29 17:15:44 +00:00
& alias "downloads.kitenet.net"
& JoeySites.annexWebSite "/srv/git/downloads.git"
"downloads.kitenet.net"
"840760dc-08f0-11e2-8c61-576b7e66acfd"
[("usbackup", "ssh://usbackup.kitenet.net/~/lib/downloads/")]
`requires` Ssh.keyImported SshRsa "joey" (Context "downloads.kitenet.net")
`requires` Ssh.knownHost hosts "usbackup.kitenet.net" "joey"
& JoeySites.gitAnnexDistributor
2014-04-19 05:28:46 +00:00
& alias "tmp.kitenet.net"
2014-08-29 17:15:44 +00:00
& JoeySites.annexWebSite "/srv/git/joey/tmp.git"
"tmp.kitenet.net"
"26fd6e38-1226-11e2-a75f-ff007033bdba"
[]
& JoeySites.twitRss
& JoeySites.pumpRss
2014-04-13 20:38:58 +00:00
2014-08-29 17:15:44 +00:00
& alias "nntp.olduse.net"
& alias "resources.olduse.net"
& JoeySites.oldUseNetServer hosts
2014-04-21 02:38:59 +00:00
2014-08-29 17:15:44 +00:00
& alias "ns2.kitenet.net"
& myDnsPrimary "kitenet.net" []
& myDnsPrimary "joeyh.name" []
& myDnsPrimary "ikiwiki.info" []
& myDnsPrimary "olduse.net"
[ (RelDomain "article",
CNAME $ AbsDomain "virgil.koldfront.dk") ]
& alias "ns3.branchable.com"
& branchableSecondary
& Dns.secondaryFor ["animx"] hosts "animx.eu.org"
elephant :: Host
elephant = standardSystem "elephant.kitenet.net" Unstable "amd64"
2014-10-08 17:17:11 +00:00
[ "Storage, big data, and backups, omnomnom!"
2014-08-29 17:15:44 +00:00
, "(Encrypt all data stored here.)"
]
& ipv4 "193.234.225.114"
2014-07-07 07:16:18 +00:00
& Grub.chainPVGrub "hd0,0" "xen/xvda1" 30
2014-08-29 17:15:44 +00:00
& Postfix.satellite
& Apt.unattendedUpgrades
& Ssh.hostKeys ctx
& sshPubKey "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAJkoPRhUGT8EId6m37uBdYEtq42VNwslKnc9mmO+89ody066q6seHKeFY6ImfwjcyIjM30RTzEwftuVNQnbEB0="
& Ssh.keyImported SshRsa "joey" ctx
& Apt.serviceInstalledRunning "swapspace"
2014-06-01 18:37:44 +00:00
& alias "eubackup.kitenet.net"
2014-08-29 17:15:44 +00:00
& Apt.installed ["obnam", "sshfs", "rsync"]
& JoeySites.obnamRepos ["wren", "pell", "kite"]
& JoeySites.githubBackup
& JoeySites.rsyncNetBackup hosts
& JoeySites.backupsBackedupTo hosts "usbackup.kitenet.net" "lib/backup/eubackup"
2014-06-01 18:47:32 +00:00
& alias "podcatcher.kitenet.net"
2014-08-29 17:15:44 +00:00
& JoeySites.podcatcher
& alias "znc.kitenet.net"
& JoeySites.ircBouncer
2014-09-09 17:58:01 +00:00
-- I'd rather this were on diatom, but it needs unstable.
2014-08-29 17:15:44 +00:00
& alias "kgb.kitenet.net"
& JoeySites.kgbServer
2014-07-05 19:21:19 +00:00
& alias "mumble.kitenet.net"
2014-08-29 17:15:44 +00:00
& JoeySites.mumbleServer hosts
& alias "ns3.kitenet.net"
& myDnsSecondary
& Docker.configured
2014-07-05 19:21:19 +00:00
& Docker.docked hosts "oldusenet-shellbox"
2014-08-29 17:15:44 +00:00
& Docker.docked hosts "openid-provider"
2014-10-08 17:17:11 +00:00
`requires` Apt.serviceInstalledRunning "ntp"
2014-08-29 17:15:44 +00:00
& Docker.docked hosts "ancient-kitenet"
2014-07-05 19:21:19 +00:00
2014-08-29 17:15:44 +00:00
& Docker.garbageCollected `period` (Weekly (Just 1))
-- For https port 443, shellinabox with ssh login to
-- kitenet.net
& alias "shell.kitenet.net"
& JoeySites.kiteShellBox
-- Nothing is using http port 80, so listen on
-- that port for ssh, for traveling on bad networks that
-- block 22.
& Ssh.listenPort 80
where
ctx = Context "elephant.kitenet.net"
2014-07-05 19:21:19 +00:00
2014-06-01 12:06:34 +00:00
2014-04-13 01:34:25 +00:00
--' __|II| ,.
---- __|II|II|__ ( \_,/\
------'\o/-'-.-'-.-'-.- __|II|II|II|II|___/ __/ -'-.-'-.-'-.-'-.-'-
----------------------- | [Docker] / ----------------------
----------------------- : / -----------------------
------------------------ \____, o ,' ------------------------
------------------------- '--,___________,' -------------------------
2014-08-29 17:15:44 +00:00
containers :: [Host]
containers =
2014-04-08 20:58:11 +00:00
-- Simple web server, publishing the outside host's /var/www
[ standardStableContainer "webserver"
2014-08-29 23:19:30 +00:00
& Docker.publish "80:80"
2014-04-11 03:20:12 +00:00
& Docker.volume "/var/www:/var/www"
& Apt.serviceInstalledRunning "apache2"
2014-04-08 21:10:52 +00:00
2014-04-08 20:58:11 +00:00
-- My own openid provider. Uses php, so containerized for security
-- and administrative sanity.
, standardStableContainer "openid-provider"
2014-05-31 22:35:17 +00:00
& alias "openid.kitenet.net"
2014-04-11 03:20:12 +00:00
& Docker.publish "8081:80"
& OpenId.providerFor ["joey", "liw"]
"openid.kitenet.net:8081"
2014-04-13 16:21:43 +00:00
-- Exhibit: kite's 90's website.
, standardStableContainer "ancient-kitenet"
2014-05-31 22:35:17 +00:00
& alias "ancient.kitenet.net"
2014-04-11 03:20:12 +00:00
& Docker.publish "1994:80"
& Apt.serviceInstalledRunning "apache2"
2014-04-20 02:22:23 +00:00
& Git.cloned "root" "git://kitenet-net.branchable.com/" "/var/www"
2014-04-13 00:21:33 +00:00
(Just "remotes/origin/old-kitenet.net")
2014-04-10 15:02:29 +00:00
, standardStableContainer "oldusenet-shellbox"
2014-05-31 20:48:14 +00:00
& alias "shell.olduse.net"
2014-05-31 22:35:17 +00:00
& Docker.publish "4200:4200"
2014-05-31 17:44:28 +00:00
& JoeySites.oldUseNetShellBox
2014-04-11 03:20:12 +00:00
-- git-annex autobuilder containers
, GitAnnexBuilder.standardAutoBuilderContainer dockerImage "amd64" 15 "2h"
, GitAnnexBuilder.standardAutoBuilderContainer dockerImage "i386" 45 "2h"
2014-05-23 01:42:57 +00:00
, GitAnnexBuilder.armelCompanionContainer dockerImage
, GitAnnexBuilder.armelAutoBuilderContainer dockerImage "1 3 * * *" "5h"
, GitAnnexBuilder.androidAutoBuilderContainer dockerImage "1 1 * * *" "3h"
2014-05-28 14:38:29 +00:00
-- for development of git-annex for android, using my git-annex
-- work tree
, let gitannexdir = GitAnnexBuilder.homedir </> "git-annex"
in GitAnnexBuilder.androidContainer dockerImage "android-git-annex" doNothing gitannexdir
& Docker.volume ("/home/joey/src/git-annex:" ++ gitannexdir)
2014-08-29 17:15:44 +00:00
]
2014-04-03 16:06:58 +00:00
2014-07-07 07:22:53 +00:00
type Motd = [String]
2014-04-11 04:14:50 +00:00
-- This is my standard system setup.
2014-07-07 07:22:53 +00:00
standardSystem :: HostName -> DebianSuite -> Architecture -> Motd -> Host
2014-07-18 06:08:13 +00:00
standardSystem hn suite arch motd = standardSystemUnhardened hn suite arch motd
-- Harden the system, but only once root's authorized_keys
-- is safely in place.
& check (Ssh.hasAuthorizedKeys "root")
(Ssh.passwordAuthentication False)
standardSystemUnhardened :: HostName -> DebianSuite -> Architecture -> Motd -> Host
standardSystemUnhardened hn suite arch motd = host hn
& os (System (Debian suite) arch)
2014-07-18 04:20:09 +00:00
& Hostname.sane
& Hostname.searchDomain
2014-07-07 07:22:53 +00:00
& File.hasContent "/etc/motd" ("":motd++[""])
& Apt.stdSourcesList `onChange` Apt.upgrade
2014-06-01 06:53:42 +00:00
& Apt.cacheCleaned
2014-04-10 04:10:08 +00:00
& Apt.installed ["etckeeper"]
& Apt.installed ["ssh"]
& GitHome.installedFor "root"
2014-07-06 19:56:56 +00:00
& User.hasSomePassword "root" (Context hn)
2014-04-10 04:10:08 +00:00
& User.accountFor "joey"
2014-07-06 19:56:56 +00:00
& User.hasSomePassword "joey" (Context hn)
2014-04-10 04:10:08 +00:00
& Sudo.enabledFor "joey"
& GitHome.installedFor "joey"
& Apt.installed ["vim", "screen", "less"]
& Cron.runPropellor "30 * * * *"
-- I use postfix, or no MTA.
& Apt.removed ["exim4", "exim4-daemon-light", "exim4-config", "exim4-base"]
`onChange` Apt.autoRemove
standardStableContainer :: Docker.ContainerName -> Host
standardStableContainer name = standardContainer name (Stable "wheezy") "amd64"
2014-04-09 01:28:15 +00:00
-- This is my standard container setup, featuring automatic upgrades.
2014-04-11 03:20:12 +00:00
standardContainer :: Docker.ContainerName -> DebianSuite -> Architecture -> Host
2014-05-23 01:42:57 +00:00
standardContainer name suite arch = Docker.container name (dockerImage system)
& os system
& Apt.stdSourcesList `onChange` Apt.upgrade
2014-04-11 03:20:12 +00:00
& Apt.unattendedUpgrades
2014-06-01 06:53:42 +00:00
& Apt.cacheCleaned
2014-09-19 03:50:13 +00:00
& Docker.tweaked
2014-04-11 03:20:12 +00:00
where
system = System (Debian suite) arch
2014-04-19 21:16:13 +00:00
-- Docker images I prefer to use.
2014-05-23 01:42:57 +00:00
dockerImage :: System -> Docker.Image
dockerImage (System (Debian Unstable) arch) = "joeyh/debian-unstable-" ++ arch
2014-06-10 04:53:54 +00:00
dockerImage (System (Debian Testing) arch) = "joeyh/debian-unstable-" ++ arch
dockerImage (System (Debian (Stable _)) arch) = "joeyh/debian-stable-" ++ arch
2014-05-23 01:42:57 +00:00
dockerImage _ = "debian-stable-official" -- does not currently exist!
2014-04-08 23:42:54 +00:00
myDnsSecondary :: Property
myDnsSecondary = propertyList "dns secondary for all my domains" $ map toProp
2014-04-21 02:52:18 +00:00
[ Dns.secondary hosts "kitenet.net"
, Dns.secondary hosts "joeyh.name"
, Dns.secondary hosts "ikiwiki.info"
2014-04-19 05:55:32 +00:00
, Dns.secondary hosts "olduse.net"
2014-04-10 05:46:33 +00:00
]
2014-04-21 02:42:20 +00:00
branchableSecondary :: RevertableProperty
branchableSecondary = Dns.secondaryFor ["branchable.com"] hosts "branchable.com"
2014-04-11 01:09:20 +00:00
2014-04-21 02:38:59 +00:00
-- Currently using diatom (ns2) as primary with secondaries
2014-07-05 19:21:19 +00:00
-- elephant (ns3) and gandi.
2014-04-21 02:21:55 +00:00
-- kite handles all mail.
myDnsPrimary :: Domain -> [(BindDomain, Record)] -> RevertableProperty
myDnsPrimary domain extras = Dns.primary hosts domain
(Dns.mkSOA "ns2.kitenet.net" 100) $
[ (RootDomain, NS $ AbsDomain "ns2.kitenet.net")
2014-07-05 19:21:19 +00:00
, (RootDomain, NS $ AbsDomain "ns3.kitenet.net")
2014-04-21 02:21:55 +00:00
, (RootDomain, NS $ AbsDomain "ns6.gandi.net")
, (RootDomain, MX 0 $ AbsDomain "kitenet.net")
, (RootDomain, TXT "v=spf1 a ?all")
] ++ extras
2014-04-14 06:24:55 +00:00
-- o
-- ___ o o
{-----\ / o \ ___o o
{ \ __ \ / _ (X___>-- __o
_____________________{ ______\___ \__/ | \__/ \____ |X__>
< \___//|\\___/\ \____________ _
\ ___/ | \___ # # \ (-)
2014-04-14 06:45:58 +00:00
\ O O O # | \ # >=)
2014-04-14 06:24:55 +00:00
\______________________________# # / #__________________/ (-}
2014-04-14 06:31:58 +00:00
monsters :: [Host] -- Systems I don't manage with propellor,
2014-10-08 17:17:11 +00:00
monsters = -- but do want to track their public keys etc.
2014-04-14 06:31:58 +00:00
[ host "usw-s002.rsync.net"
& sshPubKey "ssh-dss AAAAB3NzaC1kc3MAAAEBAI6ZsoW8a+Zl6NqUf9a4xXSMcV1akJHDEKKBzlI2YZo9gb9YoCf5p9oby8THUSgfh4kse7LJeY7Nb64NR6Y/X7I2/QzbE1HGGl5mMwB6LeUcJ74T3TQAlNEZkGt/MOIVLolJHk049hC09zLpkUDtX8K0t1yaCirC9SxDGLTCLEhvU9+vVdVrdQlKZ9wpLUNbdAzvbra+O/IVvExxDZ9WCHrnfNA8ddVZIGEWMqsoNgiuCxiXpi8qL+noghsSQNFTXwo7W2Vp9zj1JkCt3GtSz5IzEpARQaXEAWNEM0n1nJ686YUOhou64iRM8bPC1lp3QXvvZNgj3m+QHhIempx+de8AAAAVAKB5vUDaZOg14gRn7Bp81ja/ik+RAAABACPH/bPbW912x1NxNiikzGR6clLh+bLpIp8Qie3J7DwOr8oC1QOKjNDK+UgQ7mDQEgr4nGjNKSvpDi4c1QCw4sbLqQgx1y2VhT0SmUPHf5NQFldRQyR/jcevSSwOBxszz3aq9AwHiv9OWaO3XY18suXPouiuPTpIcZwc2BLDNHFnDURQeGEtmgqj6gZLIkTY0iw7q9Tj5FOyl4AkvEJC5B4CSzaWgey93Wqn1Imt7KI8+H9lApMKziVL1q+K7xAuNkGmx5YOSNlE6rKAPtsIPHZGxR7dch0GURv2jhh0NQYvBRn3ukCjuIO5gx56HLgilq59/o50zZ4NcT7iASF76TcAAAEAC6YxX7rrs8pp13W4YGiJHwFvIO1yXLGOdqu66JM0plO4J1ItV1AQcazOXLiliny3p2/W+wXZZKd5HIRt52YafCA8YNyMk/sF7JcTR4d4z9CfKaAxh0UpzKiAk+0j/Wu3iPoTOsyt7N0j1+dIyrFodY2sKKuBMT4TQ0yqQpbC+IDQv2i1IlZAPneYGfd5MIGygs2QMfaMQ1jWAKJvEO0vstZ7GB6nDAcg4in3ZiBHtomx3PL5w+zg48S4Ed69BiFXLZ1f6MnjpUOP75pD4MP6toS0rgK9b93xCrEQLgm4oD/7TCHHBo2xR7wwcsN2OddtwWsEM2QgOkt/jdCAoVCqwQ=="
, host "github.com"
& sshPubKey "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="
2014-04-23 19:04:35 +00:00
, host "ns6.gandi.net"
& ipv4 "217.70.177.40"
, host "turtle.kitenet.net"
& ipv4 "67.223.19.96"
& ipv6 "2001:4978:f:2d9::2"
2014-04-21 02:21:55 +00:00
& alias "backup.kitenet.net"
2014-07-23 16:45:04 +00:00
& alias "usbackup.kitenet.net"
& sshPubKey "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAokMXQiX/NZjA1UbhMdgAscnS5dsmy+Q7bWrQ6tsTZ/o+6N/T5cbjoBHOdpypXJI3y/PiJTDJaQtXIhLa8gFg/EvxMnMz/KG9skADW1361JmfCc4BxicQIO2IOOe6eilPr+YsnOwiHwL0vpUnuty39cppuMWVD25GzxXlS6KQsLCvXLzxLLuNnGC43UAM0q4UwQxDtAZEK1dH2o3HMWhgMP2qEQupc24dbhpO3ecxh2C9678a3oGDuDuNf7mLp3s7ptj5qF3onitpJ82U5o7VajaHoygMaSRFeWxP2c13eM57j3bLdLwxVXFhePcKXARu1iuFTLS5uUf3hN6MkQcOGw=="
2014-09-08 15:12:54 +00:00
, host "old.kitenet.net"
& ipv4 "80.68.85.49"
2014-04-21 02:21:55 +00:00
, host "mouse.kitenet.net"
& ipv6 "2001:4830:1600:492::2"
2014-04-21 03:02:46 +00:00
, host "beaver.kitenet.net"
2014-04-21 02:21:55 +00:00
& ipv6 "2001:4830:1600:195::2"
, host "hydra.kitenet.net"
& ipv4 "192.25.206.60"
2014-04-19 01:58:23 +00:00
, host "branchable.com"
& ipv4 "66.228.46.55"
& ipv6 "2600:3c03::f03c:91ff:fedf:c0e5"
2014-04-19 05:28:46 +00:00
& alias "olduse.net"
& alias "www.olduse.net"
2014-04-21 02:21:55 +00:00
& alias "www.kitenet.net"
2014-04-21 01:55:40 +00:00
& alias "joeyh.name"
& alias "campaign.joeyh.name"
& alias "ikiwiki.info"
2014-04-21 02:21:55 +00:00
& alias "git.ikiwiki.info"
2014-04-21 01:55:40 +00:00
& alias "l10n.ikiwiki.info"
2014-04-21 02:21:55 +00:00
& alias "dist-bugs.kitenet.net"
& alias "family.kitenet.net"
2014-04-23 18:27:26 +00:00
, host "animx"
& ipv4 "76.7.162.101"
2014-04-23 23:26:02 +00:00
& ipv4 "76.7.162.186"
2014-04-14 06:31:58 +00:00
]