[
    {
        "date": 29200953600,
        "slug": "info",
        "title": "re:Web Project Infos",
        "body": "<p>re:Web is a small add-in binary that enables classic web applications to run on AWS Lambda.<\/p>\n<p>For a detailed description, please see the README on Github.<\/p>\n<h3>Relevant Links<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apparentorder\/reweb\">Github project page<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/reweb.neveragain.de\/\">re:Web blog<\/a> (this site)<\/p>\n<\/li>\n<li>\n<p>re:Web in the <a href=\"https:\/\/gallery.ecr.aws\/apparentorder\/reweb\">Amazon ECR Public Gallery<\/a><\/p>\n<\/li>\n<li>\n<p>re:Web in the <a href=\"https:\/\/serverlessrepo.aws.amazon.com\/applications\/eu-central-1\/329261680777\/reweb\">Serverless Application Repository<\/a> <strong><em>EXPERIMENTAL<\/em><\/strong><\/p>\n<\/li>\n<\/ul>\n<h3>Contact<\/h3>\n<p>For bug reports, pull requests and other issues please use Github.<\/p>\n<p>For everything else:<\/p>\n<ul>\n<li>I'm trying to get used to Twitter as <a href=\"https:\/\/twitter.com\/apparentorder\">@apparentorder<\/a>. DMs are open.<\/li>\n<li>Sometimes I peek into the og-aws Slack, as \"appo\"<\/li>\n<li>I'm old enough to prefer IRC -- find me in #reweb on Freenode.<\/li>\n<li>Last resort: Try legacy message delivery to apparentorder@neveragain.de.<\/li>\n<\/ul>",
        "image": "",
        "excerpt": "All important resources",
        "tags": [
            "info"
        ]
    },
    {
        "date": 1618704000,
        "slug": "wordpress-plugins",
        "title": "Wordpress plugins",
        "body": "<p>A basic Wordpress installation runs fine on re:Web, but one major obstacle for many\nreal-world uses is large assets:<\/p>\n<p>API Gateway \/ Application Load Balancer put some hefty size limits on uploads and\ndownloads -- for example, using very large images will lead to errors.<\/p>\n<p>There are two plugins which help a lot to make Wordpress work nicely with large assets:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/humanmade\/S3-Uploads\">S3 Uploads<\/a> offloads all such assets to\nS3, so Wordpress\/re:Web don't have to deal with delivery of those assets at all\n(therefore bypassing the size restrictions)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/tuxedo-big-file-uploads\/\">Tuxedo Big File Uploads<\/a>\nreplaces the Wordpress file upload function to use chunked transfers instead<\/p>\n<\/li>\n<\/ul>\n<p>With both plugins installed, uploading and delivering large assets works nicely.<\/p>\n<p>Note that it's most likely necessary to install them manually (unzip to the Wordpress\nplugin folder in EFS), because their installation takes longer than API Gateway's maximum\ntimeout.<\/p>",
        "image": "",
        "excerpt": "Large assets require special handling with re:Web. Luckily, there are two great Wordpress plugins that help to deal with this.",
        "tags": [
            "wordpress",
            "howto"
        ]
    },
    {
        "date": 1618704000,
        "slug": "php-nginx-sar",
        "title": "re:Web for PHP + nginx in the Serverless Application Repository",
        "body": "<p>There is now a re:Web package in the AWS Serverless Application Repository that comes ready-to-go\nwith nginx and php-fpm included.<\/p>\n<p>Usage goes something like this:<\/p>\n<ul>\n<li>\n<p>Make sure you have an EFS Access Point that will be your \"web root\", with at least a\nsimple <code>index.html<\/code> for testing<\/p>\n<\/li>\n<li>\n<p>Deploy the package <a href=\"https:\/\/serverlessrepo.aws.amazon.com\/applications\/eu-central-1\/329261680777\/reweb\">from the Serverless Application Repository<\/a><\/p>\n<\/li>\n<li>\n<p>For deployment, you will need to provide<\/p>\n<ul>\n<li>the EFS <strong>Access Point<\/strong> ARN<\/li>\n<li>the VPC Subnet ID(s) for the Lambda function<\/li>\n<li>the Security Group ID(s) for the Lambda function<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Wait for the deployment to complete -- you can monitor progress in the \"Deployments\"\ntab (should take 2-5 minutes)<\/p>\n<\/li>\n<li>\n<p>After deployment, go to the API Gateway Console and find the <em>Invoke URL<\/em><\/p>\n<\/li>\n<\/ul>\n<p>There will be a Lambda function and a corresponding API Gateway that's ready\nto serve web requests and even full PHP applications from your EFS. Just open the Invoke URL\nin your browser.<\/p>\n<p>A potential next step might be to manually add a Custom Domain Name to API Gateway, or configure\nan Application Load Balancer to connect to that Lambda. And to put some content there, for example\nsome PHP application.<\/p>\n<p>To delete the deployment, simply delete the stack in CloudFormation.<\/p>\n<p>Note that I consider this re:Web package even more experimental than re:Web itself :-) If you\ngive this a try, <a href=\"https:\/\/github.com\/apparentorder\/reweb#contact\">let me know<\/a>!<\/p>",
        "image": "",
        "excerpt": "An experimental re:Web package with nginx and PHP is now available in the AWS Serverless Application Repository.",
        "tags": [
            "info"
        ]
    },
    {
        "date": 1617667200,
        "slug": "dogfood",
        "title": "Dogfood!",
        "body": "<p>To have something akin to a production site (lol), I've decided to give re:Web a homepage \/ blog.<\/p>\n<p>It will be a good place to post news and updates.<\/p>\n<p>And it runs on re:Web, hence the title.<\/p>\n<p>This site runs on <a href=\"https:\/\/nicholas.adgr.dev\">Nicholas<\/a>, \"a lightweight, flat-file, easy to use &amp; nearly-headless blogging system\".\nThis was a coincidental discovery, but it's pretty nice so far! I love simple things.<\/p>\n<p>Nicholas is PHP without external dependencies (no database!), so it's an awesome fit for nginx+php powered by re:Web!<\/p>\n<p>Thanks to Lambda + re:Web, this blog is blazingly fast,\nit would scale to <a href=\"https:\/\/www.bbc.co.uk\/blogs\/internet\/entries\/8673fe2a-e876-45fc-9a5f-203c049c9f9c\">BBC-levels of traffic<\/a>\nunmodified<sup id=\"fnref1:quota\"><a href=\"#fn:quota\" class=\"footnote-ref\">1<\/a><\/sup>, and is highly available in three\ndifferent <a href=\"https:\/\/aws.amazon.com\/about-aws\/global-infrastructure\/regions_az\/#Availability_Zones\">Availability Zones<\/a>.<\/p>\n<p>And it costs roughly... nothing!<\/p>\n<div class=\"footnotes\">\n<hr \/>\n<ol>\n<li id=\"fn:quota\">\n<p>Well, besides AWS default quotas. Still, default quotas will handle more traffic than you'll ever need.&#160;<a href=\"#fnref1:quota\" rev=\"footnote\" class=\"footnote-backref\">&#8617;<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>",
        "image": "https:\/\/tty.neveragain.de\/assets\/falling-into-water-is-prohibited.jpeg",
        "excerpt": "In a shocking first, I'm trying my own dogfood.",
        "tags": [
            "yadayada"
        ]
    }
]