Skip to content

Tags: pete-murphy/trypurescript

Tags

v2020-07-11.1

Toggle v2020-07-11.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
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.

v2020-05-26.1

Toggle v2020-05-26.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
[purescript#169] Do away with version numbers (purescript#176)

Resolves purescript#169.

v0.13.7

Toggle v0.13.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
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

v0.13.6

Toggle v0.13.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Update to PureScript v0.13.6 (purescript#162)

* Update to PureScript v0.13.6

* Build the names env once, before starting the server

v0.13.5

Toggle v0.13.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Serve the output directory from compile.purescript.org (purescript#159)

* Serve the output directory from compile.purescript.org

* Only serve JS files

v0.12.0-rc.5

Toggle v0.12.0-rc.5's commit message
Fix nginx config

v0.12.0-rc.4

Toggle v0.12.0-rc.4's commit message
fix config

v0.12.0-rc.3

Toggle v0.12.0-rc.3's commit message
Fix travis deploy config

v0.12.0-rc.2

Toggle v0.12.0-rc.2's commit message
make before_deploy executable

v0.12.0-rc.1

Toggle v0.12.0-rc.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
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.