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