Opened 4 weeks ago

Last modified 35 hours ago

#13739 assigned Feature/Enhancement Request


Reported by: Owned by:
Priority: Medium Component: Tech
Keywords: haskell Cc:
Sensitive: no


I'd like to request that Haskell be installed, so I can run gitit.


Change History (23)

comment:1 Changed 4 weeks ago by

  • Owner set to
  • Status changed from new to assigned

Hi, do you need to run gitit on the server necessarily? One of the advantages of these kind of markdown to html compilers is that you can keep your version control and data local and just copy the html it produces to the server over sftp.

comment:2 Changed 4 weeks ago by

It's git, and running git locally isn't terribly useful. More importantly, because gitit is a front end to pandoc, it gives readers the capacity to download the files in whatever format they find most useful, not just HTML. Most importantly, I hope to scale this up to include other people, so it can't be a local project.

comment:3 Changed 3 weeks ago by

Makes sense. There is a debian package available for gitit. It looks like we could install that easily without bringing in too many extra dependencies. Are you ok with using that version?

comment:4 Changed 3 weeks ago by

That looks great. Thanks!

comment:5 Changed 3 weeks ago by

Any update on this? Thanks!

comment:6 Changed 3 weeks ago by

Hi, sorry for the delay. I will add this package to the server where you'll be using it. Is this for the "website for Interpreters Cooperative of Madison" hosting order or will you be creating a new one?

comment:7 Changed 3 weeks ago by

Thanks! It's the same order, although I plan to run it in a subdomain. We're not ready to move our main site over yet, although it's highly likely that we will eventually.

comment:8 Changed 3 weeks ago by

Hi I think you'll want to create a new hosting order for the subdomain. You can do that under your existing membership. This also has the benefit of ensuring that the new site is created on a newest server which is already running the latest version of Debian.

comment:9 Changed 2 weeks ago by

OK. I've created the new hosting order, set up a new user for the site, pointed the DNS at erica, and confirmed that it's visible via the web:

Now can I have gitit?

comment:10 Changed 2 weeks ago by

Oh sure. You should find it now on erica.

0 cup@erica:~/$ gitit -v
gitit version -plugins

comment:11 Changed 2 weeks ago by

OK, I tried running it, as both my users, but I get this...

0 interpreters@erica:/home/members/interpreterscoop/sites/$ gitit gitit: gitit.log: openFile: permission denied (Permission denied)

Presumably, it creates the log file early in the installation process and updates it incrementally to aid in bug detection. In this case, the bug is that I can't create the log file. Likely that's because it's created outside my space.

EDIT: I'm now attempting to update the config file to locate the log file in my space (along with various other changes I need to make anyways).

If this DOESN'T work, I'll let you know. Until then, assume that no news is good news.

Last edited 2 weeks ago by (previous) (diff)

comment:12 Changed 2 weeks ago by

Well, here's what happens. I get part-way through the install, and then it throws an error.

0 cup@erica:~/$ gitit -f ~/.cu.gitit.conf 
gitit: /usr/share/filestore/extra/post-update: openBinaryFile: does not exist (No such file or directory)
1 cup@erica:~/$ ls
gitit.log  wikidata
0 cup@erica:~/$ more gitit.log 
0 cup@erica:~/$ cd wikidata/
0 cup@erica:~/$ ls
0 cup@erica:~/$

According to the Intertubes, this indicates a need for libghc-filestore-data.

comment:13 Changed 2 weeks ago by

Ok, that package doesn't add any additional dependencies so I've gone ahead and added libghc-filestore-data to erica as well.

comment:14 Changed 2 weeks ago by


I'm awfully close at this point. gitit is up and running, the subdomain works, the CNAME points to the right place, but there's one last glitch.

gitit wants to run on port 5001. That means that my site comes up properly as, but not simply I tried resetting that to port 80 in the config file, but apparently I'm not permitted to bind to port 80 or anything under 1024. So, I just need to find out how to do a redirect or whatever it takes to hide the port in the address, because I can't give out an address with a port number in it. Any tips?

comment:15 Changed 2 weeks ago by

So, turns out the solution is in the gitit docs, but I can't do it. Here's what it says...

Using gitit with apache

Most users who run a public-facing gitit will want gitit to appear
at a nice URL like `` or
`` rather than ``.
This can be achieved using apache's `mod_proxy`.

Proxying to ``

Set up your DNS so that `` maps to
your server's IP address. Make sure that the `mod_proxy`, `mod_proxy_http` and `mod_rewrit
e` modules are
loaded, and set up a virtual host with the following configuration:

    <VirtualHost *>
        DocumentRoot /var/www/
        RewriteEngine On
        ProxyPreserveHost On
        ProxyRequests Off
        <Proxy *>
           Order deny,allow
           Allow from all
        ProxyPassReverse /
        RewriteRule ^(.*)$1 [P]
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

Reload your apache configuration and you should be all set.

comment:16 Changed 2 weeks ago by

Can you try adding something like this directly to your web configuration in the control panel?

RewriteEngine On
RewriteCond %{REQUEST_URI} !/.well-known/acme-challenge/.*
RewriteRule (.*) http://erica:5001$1 [P]

The second line excluding .well-known requests would be there to avoid forwarding the LetsEncrypt requests if you decide to activate the Lets Encrypt cert from the control panel. In fact I would go ahead and do that first (just edit the web config and set port to auto) before adding the rewrite rules.

comment:17 Changed 2 weeks ago by

I set the port to "auto," but the first time I tried the site, I got the Firefox security warning that the certification was not configured right. I'm hoping it simply hadn't finished generating, or whatever, because I haven't seen it since.

The site still doesn't come up without the port number. I dropped in what you wrote verbatim. Are there tweaks I should be making?

Sorry this is taking so many steps.

comment:18 Changed 2 weeks ago by

Ok, there are a few things going on here. Sorry should have clarified, creating the TLs certifictae will fail if any of the domains you-ve listed as a servername or serveralias are not actually pointing to the correct ip. So in your web configuration you've listed and but neither of these are pointing to erica's ip. You'll need to change that be for attempting to create the TLS cert or change the servername or serveralias to anything that is actually using erica's ip.

Also I noticed that you are running gitit from the and that you have set a CNAME for that subsomain pointing to erica. However you would need to add that subdomain as a serverlias for apache to be able to respond to it. I've gone ahead and done that for you to test.

The other problem was that the apache proxy_http_module does not appear to be actiavted by default in Debian stretch and I've just enabled that for you. I believe the redirect should be working now.

I've changed my /etc/hosts file to test and it does appear to be working. Once you see it working I would try changing gitit config to bind to instead of erica's ip number to ensure all requests have to go through apache and not allow requests directly to gitit.

comment:19 Changed 13 days ago by

I want to get rid of entirely. I manually created a directory by that name with my first user, "interpreters," and my second user, "cup," can't make any changes, so I deleted it (as "interpreters"). I want to delete the hosting order for it, but I'm worried it will take the second user with it.

I want to use because if it's a success, I'll spin it off as, and I want people to recognize the name. In the meantime, I appreciate you adding the serveralias, because I don't know where/how to do that.

I changed my gitit config file to listen on, but continues to resolve to the generic page. When I tack on the port number, it stalls on the TLS handshake stage, and eventually fails.

comment:20 Changed 12 days ago by

It shouldn't be necessary to delete the hosting order. You can change the ServerName and ServerAlias fields in the MFPL control panel in the Web Configuration tab. You can assign your website to respond to any domain you like as long as the domain is pointing to the ip of that hosting order. You can see your ip number in the upper right hand corner of the control panel.

You will need to ensure that is pointing to that ip number for any of the above to work.

comment:21 Changed 8 days ago by

This still isn't working. I have the servername as, and the aliases as and

I'm pretty sure I have the DNS pointed correctly, or I wouldn't even have gotten this far. The site comes up correctly as long as I include the port.

comment:22 Changed 8 days ago by still isn't pointing to the correct ip number. You can either point it to the correct ip or remove that domain completely form the web configuration.

Last edited 8 days ago by (previous) (diff)

comment:23 Changed 35 hours ago by

The good news is, this finally works! The bad news is, I can't export anything. When I try it, it gives me a vague error...


Something went wrong here
Internal server error
Everything has stopped

The error was "<stderr>: hPutChar: hardware fault (Input/output error)"

Please login to add comments to this ticket.

Note: See TracTickets for help on using tickets.