Tags: mikesol/trypurescript
Tags
Enable automated SSL certificate renewal (purescript#184) Amends the nginx config so that nginx will respond to HTTP requests whose path starts with /.well-known/ with the matching file in /var/www/letsencrypt-webroot, if any. This allows Let's Encrypt to verify domain ownership in order to renew certificates automatically. The `certbot` program is configured by default to renew all certificates once they are approaching their expiration dates, so with these changes, all that needs to happen on the server to enable subsequent renewals to be handled completely automatically is: - Certbot needs to be told to use the "webroot" plugin for domain verification with the appropriate directory when renewing certificates - Nginx needs to be set up to reload its configuration periodically so that newly renewed certificates are picked up. Note that certbot offers an "nginx" plugin too, but I don't trust it because it modifies the nginx configuration, and I think it requires taking the server down for a short time. The "webroot" approach seems simpler and safer. I know that this approach works because Pursuit is already using it (see purescript/pursuit#410), so after this is merged I intend to deploy, SSH in, and do the above two steps manually.
[purescript#169] Do away with version numbers (purescript#176) Resolves purescript#169.
Update readme: server API (purescript#168) * The Try PureScript client no longer uses a bundle of preloaded modules; fix a sentence which says it does * Document that the request body must be a module called Main * Document the formats of the various JSON responses in more detail * Document the fact that we now expose the output directory from compile.purescript.org
Update to PureScript v0.13.6 (purescript#162) * Update to PureScript v0.13.6 * Build the names env once, before starting the server
Serve the output directory from compile.purescript.org (purescript#159) * Serve the output directory from compile.purescript.org * Only serve JS files
Put everything needed for deploys in deploy bundles (purescript#153) The aim of this commit is to allow Travis to create deploy bundles for both the client and the server on tags so that everything we need for a deployment is contained in the deploy bundles. There are two separate bundles: one for the server, which includes the trypurescript binary as well as nginx configuration and the systemd service file, and one for the client, which just includes the HTML, CSS, and JS files we serve from try.purescript.org. The server bundle already exists; I have only modified it to additionally include nginx and systemd configuration. The reason for this is that I would prefer to have as much as reasonably possible of the production config in the repository, so that we can move towards more automated deployments, and also to help avoid a situation where only one person understands enough about the server setup to be able to administer it. For the client bundle, I've moved stuff we want to be publicly visible into a separate public/ directory, mostly because I don't want to include things like the output/ and node_modules/ directories in the client bundle (so that it doesn't become too large). I've also removed the client/CNAME and client/LICENSE files. The CNAME file is no longer needed: it was only used for GH pages, which I'd like to try moving away from. The license for the client code is covered by the LICENSE file at the repo root - LICENSE and client/LICENSE are the same, except that the client/LICENSE file has the copyright years listed as 2013-16, so it is redundant.
PreviousNext