This is a reference project for my blog posts about Haskell web services. Usually my workflow is:
- Find something cool out during work, let's call it
A
. - Port
A
to this project. - Write words about
A
on my blog
I link to branches from blog post to make sure they remain relevant and not cluttered from the result of new blog posts. Branches also allow me to do fixes when necessary. Currently the ones I've wrote about are:
A good dev setup is available with:
make ghcid
Adding dependencies now takes updating two dependency list, checkout this blogpost for the complete description.
Production builds can be made with nix.
You can significantly speedup the building of dependencies
by adding the following binary cache to your configuration.nix
:
nix = {
binaryCaches = [
"https://jappie.cachix.org"
];
binaryCachePublicKeys = [
"jappie.cachix.org-1:+5Liddfns0ytUSBtVQPUr/Wo6r855oNLgD4R8tm1AE4="
];
};
This will be automatically updated with help of travis CI.
- On your AWS console, create a security group called "awesome" in the Oregon region. Give it inbound TCP 22 and 6868 permission.
nixops create -d awesome deployment.nix
nixops set-args -d awesome --argstr keyPair <your-aws-key.pem>
nixops set-args -d awesome --argstr accessKeyId <your-aws-access-key>
nixops deploy -d awesome
Other people have had similar ideas: