2014-04-19 21:16:13 +00:00
|
|
|
-- This is the main configuration file for Propellor, and is used to build
|
2014-04-01 22:56:56 +00:00
|
|
|
-- the propellor program.
|
|
|
|
|
|
|
|
import Propellor
|
|
|
|
import Propellor.CmdLine
|
2014-04-09 04:54:27 +00:00
|
|
|
import Propellor.Property.Scheduled
|
2014-04-01 22:56:56 +00:00
|
|
|
import qualified Propellor.Property.File as File
|
|
|
|
import qualified Propellor.Property.Apt as Apt
|
|
|
|
import qualified Propellor.Property.Network as Network
|
2014-04-04 05:16:16 +00:00
|
|
|
--import qualified Propellor.Property.Ssh as Ssh
|
2014-04-01 22:56:56 +00:00
|
|
|
import qualified Propellor.Property.Cron as Cron
|
2014-04-04 05:16:16 +00:00
|
|
|
--import qualified Propellor.Property.Sudo as Sudo
|
2014-04-01 22:56:56 +00:00
|
|
|
import qualified Propellor.Property.User as User
|
2014-04-04 05:16:16 +00:00
|
|
|
--import qualified Propellor.Property.Hostname as Hostname
|
|
|
|
--import qualified Propellor.Property.Reboot as Reboot
|
|
|
|
--import qualified Propellor.Property.Tor as Tor
|
2014-04-01 22:56:56 +00:00
|
|
|
import qualified Propellor.Property.Docker as Docker
|
|
|
|
|
2014-04-19 21:08:20 +00:00
|
|
|
main :: IO ()
|
|
|
|
main = defaultMain hosts
|
|
|
|
|
2014-04-11 03:20:12 +00:00
|
|
|
-- The hosts propellor knows about.
|
2014-04-01 22:56:56 +00:00
|
|
|
-- Edit this to configure propellor!
|
2014-04-11 03:20:12 +00:00
|
|
|
hosts :: [Host]
|
|
|
|
hosts =
|
|
|
|
[ host "mybox.example.com"
|
2014-06-05 21:30:25 +00:00
|
|
|
& os (System (Debian Unstable) "amd64")
|
|
|
|
& Apt.stdSourcesList
|
2014-04-11 03:20:12 +00:00
|
|
|
& Apt.unattendedUpgrades
|
|
|
|
& Apt.installed ["etckeeper"]
|
|
|
|
& Apt.installed ["ssh"]
|
2014-08-19 21:31:09 +00:00
|
|
|
& User.hasSomePassword "root" (Context "mybox.example.com")
|
2014-04-11 03:20:12 +00:00
|
|
|
& Network.ipv6to4
|
|
|
|
& File.dirExists "/var/www"
|
2014-11-20 03:11:34 +00:00
|
|
|
& Docker.docked webserverContainer
|
2014-04-11 03:20:12 +00:00
|
|
|
& Docker.garbageCollected `period` Daily
|
|
|
|
& Cron.runPropellor "30 * * * *"
|
2014-04-01 22:56:56 +00:00
|
|
|
|
2014-04-11 03:20:12 +00:00
|
|
|
-- add more hosts here...
|
|
|
|
--, host "foo.example.com" = ...
|
2014-04-01 22:56:56 +00:00
|
|
|
]
|
2014-11-20 03:11:34 +00:00
|
|
|
|
|
|
|
-- A generic webserver in a Docker container.
|
|
|
|
webserverContainer :: Docker.Container
|
|
|
|
webserverContainer = Docker.container "webserver" "joeyh/debian-stable"
|
|
|
|
& os (System (Debian (Stable "wheezy")) "amd64")
|
|
|
|
& Apt.stdSourcesList
|
|
|
|
& Docker.publish "80:80"
|
|
|
|
& Docker.volume "/var/www:/var/www"
|
|
|
|
& Apt.serviceInstalledRunning "apache2"
|