{"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-705878827", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 705878827, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNTg3ODgyNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-08T23:33:05Z", "updated_at": "2020-10-08T23:33:05Z", "author_association": "OWNER", "body": "Documentation is now live at https://docs.datasette.io/en/latest/deploying.html#running-datasette-using-systemd", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-614111094", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 614111094, "node_id": "MDEyOklzc3VlQ29tbWVudDYxNDExMTA5NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-15T15:32:49Z", "updated_at": "2020-04-15T15:32:49Z", "author_association": "OWNER", "body": "Relevant: https://github.com/simonw/datasette-auth-github/issues/61", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-610186532", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 610186532, "node_id": "MDEyOklzc3VlQ29tbWVudDYxMDE4NjUzMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-07T05:43:45Z", "updated_at": "2020-04-07T05:43:45Z", "author_association": "OWNER", "body": "I've run Datasette in production directly on Ubuntu with systemd in a few places now. I think I'm ready to turn this into real documentation.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-561494291", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 561494291, "node_id": "MDEyOklzc3VlQ29tbWVudDU2MTQ5NDI5MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-12-04T06:14:16Z", "updated_at": "2019-12-04T06:14:16Z", "author_association": "OWNER", "body": "I've been successfully running the systemd recipe above by Russs on a couple of projects. I shared some notes about what's been working for me here: https://gist.github.com/simonw/63797bb10bb74e615695edd8f850844f", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-509480062", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 509480062, "node_id": "MDEyOklzc3VlQ29tbWVudDUwOTQ4MDA2Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-07-09T04:15:11Z", "updated_at": "2019-07-09T04:15:11Z", "author_association": "OWNER", "body": "Running as root isn't ideal because it means that if there are any security vulnerabilities in Datasette an attacker could use them to execute any command they like as root on your machine.\r\n\r\nI'm moderately confident there aren't any vulnerabilities like that, but I'm definite not 100% certain!\r\n\r\nMy recommendation is to run Datasette on 127.0.0.1 port 8001 and then have nginx proxy port 80 to it. See https://github.com/simonw/datasette/issues/514#issuecomment-504663201 for suggested nginx configuration.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-505061703", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 505061703, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNTA2MTcwMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-24T15:31:25Z", "updated_at": "2019-06-24T15:31:25Z", "author_association": "OWNER", "body": "I'm suspicious of the wildcard. Does it work if you do the following?\r\n\r\n ExecStart=/home/chris/Env/datasette/bin/datasette serve -h 0.0.0.0 /home/chris/digital-library/databases/actual-database.db --cors --metadata /home/chris/digital-library/metadata.json\r\n\r\nIf that does work then it means the ExecStart line doesn't support bash wildcard expansion. You'll need to create a separate script like this:\r\n\r\n```\r\n#!/bin/bash\r\n/home/chris/Env/datasette/bin/datasette serve -h 0.0.0.0 /home/chris/digital-library/databases/*.db --cors --metadata /home/chris/digital-library/metadata.json\r\n```\r\n\r\nThen save that as `/home/chris/digital-library/run-datasette.sh` and try this:\r\n\r\n ExecStart=/home/chris/digital-library/run-datasette.sh", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504793379", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504793379, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDc5MzM3OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-23T22:31:29Z", "updated_at": "2019-06-23T22:31:48Z", "author_association": "OWNER", "body": "I suggest trying a full path in `ExecStart` like this:\r\n\r\n`ExecStart=/home/chris/Env/datasette/bin/datasette serve -h 0.0.0.0 /home/chris/digital-library/databases/*.db --cors --metadata /home/chris/digital-library/metadata.json`\r\n\r\nThat should eliminate the chance of some kind of path confusion.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504663390", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504663390, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MzM5MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:52:27Z", "updated_at": "2019-06-22T12:52:27Z", "author_association": "OWNER", "body": "This example is useful to - I like how it has a Makefile that knows how to set up systemd: https://github.com/pikesley/Queube", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504663201", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504663201, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MzIwMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:49:56Z", "updated_at": "2019-06-22T12:49:56Z", "author_association": "OWNER", "body": "Here are some partial notes I have saved from an nginx configuration I've used in the past:\r\n```\r\ncat /etc/nginx/sites-available/default\r\nserver {\r\n\tlisten 80 default_server;\r\n\tlisten [::]:80 default_server;\r\n\r\n location / {\r\n proxy_pass http://127.0.0.1:8001/;\r\n\t\tproxy_set_header Host $host;\r\n }\r\n...\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504662987", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504662987, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2Mjk4Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:46:39Z", "updated_at": "2019-06-22T12:46:39Z", "author_association": "OWNER", "body": "... and @russss also suggested systemd 21 seconds before I posted that!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504662931", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504662931, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MjkzMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:45:47Z", "updated_at": "2019-06-22T12:45:47Z", "author_association": "OWNER", "body": "I asked about this on Twitter and got a solid recommendation for systemd and this tutorial: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units - via https://twitter.com/sil/status/1142412145990221825", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504662063", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504662063, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MjA2Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:31:58Z", "updated_at": "2019-06-22T12:31:58Z", "author_association": "OWNER", "body": "This is also relevant to Datasette Library #417 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504661990", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504661990, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MTk5MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:30:47Z", "updated_at": "2019-06-22T12:30:47Z", "author_association": "OWNER", "body": "A section in the Datasette docs that acts as recommendations plus a tutorial for running Datasette on a VPS without using a Docker would be excellent.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/514#issuecomment-504661909", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/514", "id": 504661909, "node_id": "MDEyOklzc3VlQ29tbWVudDUwNDY2MTkwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-06-22T12:29:46Z", "updated_at": "2019-06-22T12:29:46Z", "author_association": "OWNER", "body": "I'm still trying to figure this out myself.\r\n\r\nI'm confident that running nginx on port 80 and using it to proxy traffic to Datasette is a sensible way to solve the port problem.\r\n\r\nAs for running Datasette itself: the two options that seem best to me are some kind of Init.d service or running it under supervisord. I have to admit I haven't worked out the necessary incantation for either of those yet: the solitary instance I have that's not running as a Docker container is sitting in a \"screen\" instance for the moment!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 459397625, "label": "Documentation with recommendations on running Datasette in production without using Docker"}, "performed_via_github_app": null}