# Announcement: Mensam

**URL:** <https://discourse.haskell.org/t/announcement-mensam/6367>\
**Category:** Links\
**Created:** [June 3, 2023, 9:38pm UTC](https://discourse.haskell.org/t/announcement-mensam/6367 "2023-06-03T21:38:47Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jumper149](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jumper149/32/2747_2.png) [@jumper149](https://discourse.haskell.org/u/jumper149)\
**Post date:** [June 3, 2023, 9:38pm UTC](https://discourse.haskell.org/t/announcement-mensam/6367/1 "2023-06-03T21:38:47Z")

</div>

[https://felixspringer.xyz/homepage/blog/mensamAnnouncement](https://felixspringer.xyz/homepage/blog/mensamAnnouncement)

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [June 4, 2023, 5:52am UTC](https://discourse.haskell.org/t/announcement-mensam/6367/2 "2023-06-04T05:52:44Z")

</div>

Any way to build/deploy this without nix?

---

<div class="post-metadata">

**Author:** ![jumper149](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jumper149/32/2747_2.png) [@jumper149](https://discourse.haskell.org/u/jumper149)\
**Post date:** [June 4, 2023, 8:10am UTC](https://discourse.haskell.org/t/announcement-mensam/6367/3 "2023-06-04T08:10:11Z")

</div>

Currently there is no way to do that.  
Since I am using a few unreleased library versions I also think you cannot really avoid Nix at the moment.

But I know that 2 things are possible with Nix:

- Building static Haskell executables
- Putting a derivation into a docker image

This way pretty much anyone could deploy this with docker. You would just need a machine with Nix to build it, but GitHub Actions can take care of that as well.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [June 4, 2023, 10:41am UTC](https://discourse.haskell.org/t/announcement-mensam/6367/4 "2023-06-04T10:41:43Z")

</div>

> [@jumper149](#):
>
> Since I am using a few unreleased library versions I also think you cannot really avoid Nix

Do you mean Haskell libraries? Both cabal and stack support this just fine.

> [@jumper149](#):
>
> But I know that 2 things are possible with Nix:
> 
> - Building static Haskell executables
> - Putting a derivation into a docker image

You can build static Haskell executables easily without nix as well, utilizing alpine images (ghcup and cabal do that).

---

<div class="post-metadata">

**Author:** ![jumper149](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jumper149/32/2747_2.png) [@jumper149](https://discourse.haskell.org/u/jumper149)\
**Post date:** [June 4, 2023, 11:33am UTC](https://discourse.haskell.org/t/announcement-mensam/6367/5 "2023-06-04T11:33:47Z")

</div>

> [@hasufell](#):
>
> > [@jumper149](#):
> >
> > Since I am using a few unreleased library versions I also think you cannot really avoid Nix
> 
> Do you mean Haskell libraries? Both cabal and stack support this just fine.

I actually wasn’t aware of that. [Here](https://github.com/jumper149/mensam/blob/4a8fa1f1950afeacfb8eac7fbe3f801b33da3195/server/subflake.nix#L106) are the overrides I’m using.

I guess it should be possible then to build everything without Nix theoretically. I just wouldn’t encourage it at the moment.

I find it convenient to have a single build tool for a full stack project.  
For example: You can clone the repository and use `nix run` to build and start the server (including static files, frontend, fonts) with a single command.  
If you don’t configure the binary cache it just might take a while.  
But even just the fact that I can simply use a binary cache without much setup is worth a lot to me.  
Reproducible (and cached) development environments are nice too (including language servers).

I don’t plan to support building without Nix in the near future.  
But utilizing [pkgs.dockerTools.buildImage](https://nixos.org/manual/nixpkgs/stable/#ssec-pkgs-dockerTools-buildImage) shouldn’t be a lot of work. That way you can atleast use docker to _run_ the server.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [June 4, 2023, 12:00pm UTC](https://discourse.haskell.org/t/announcement-mensam/6367/6 "2023-06-04T12:00:40Z")

</div>

> [@jumper149](#):
>
> But even just the fact that I can simply use a binary cache without much setup is worth a lot to me.

Fyi, cabal and stack cache build artifacts too and have tools to share them (e.g. via s3 buckets):

- [GitHub - haskell-works/cabal-cache: CI assistant](https://github.com/haskell-works/cabal-cache)
- [GitHub - fpco/cache-s3](https://github.com/fpco/cache-s3)

---

<div class="post-metadata">

**Author:** ![jumper149](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jumper149/32/2747_2.png) [@jumper149](https://discourse.haskell.org/u/jumper149)\
**Post date:** [June 4, 2023, 12:26pm UTC](https://discourse.haskell.org/t/announcement-mensam/6367/7 "2023-06-04T12:26:03Z")

</div>

> [@hasufell](#):
>
> Fyi, cabal and stack cache build artifacts too and have tools to share them (e.g. via s3 buckets)

I guess at that point it really boils down to what one considers convenient.

Good to know that this exists though 👍
