mirror of
https://github.com/hanzoai/pack.git
synced 2026-09-30 23:43:13 +00:00
chore(pack): drop Railway branding from our own docs, comments, and examples
Rewrites our own comments, help text, and example READMEs that named Railway or linked railway.app so they describe what they do instead. Retargets the changelog generator and RELEASE.md's Actions/release links at this repo. Leaves upstream issue links, the MIT copyright, and the builder/runtime/frontend image references untouched -- those still point at ghcr.io/railwayapp because we don't publish our own copies of those images yet. Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -18,7 +18,7 @@ import sys
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from pathlib import Path
|
||||
|
||||
REPO = "railwayapp/railpack"
|
||||
REPO = "hanzoai/pack"
|
||||
RELEASES_URL = f"https://github.com/{REPO}/releases"
|
||||
OUTPUT = Path("docs/src/content/docs/changelog.md")
|
||||
# Only include releases published within this window on the docs page.
|
||||
@@ -26,11 +26,11 @@ CHANGELOG_YEARS = 1
|
||||
|
||||
# Match full GitHub PR/issue URLs so we can shorten them in prose.
|
||||
PR_URL_RE = re.compile(
|
||||
r"https://github\.com/railwayapp/railpack/(?:pull|issues)/(\d+)"
|
||||
rf"https://github\.com/{re.escape(REPO)}/(?:pull|issues)/(\d+)"
|
||||
)
|
||||
# Bare "Full Changelog" compare/commits links from release templates.
|
||||
FULL_CHANGELOG_RE = re.compile(
|
||||
r"\*\*Full Changelog\*\*:\s+(https://github\.com/railwayapp/railpack/"
|
||||
rf"\*\*Full Changelog\*\*:\s+(https://github\.com/{re.escape(REPO)}/"
|
||||
r"(?:compare|commits)/[^\s]+)"
|
||||
)
|
||||
# Boilerplate footer lines from the release notes template.
|
||||
|
||||
+3
-3
@@ -20,7 +20,7 @@ This document outlines the process for creating new releases of Railpack.
|
||||
```
|
||||
|
||||
3. The [release
|
||||
workflow](https://github.com/railwayapp/railpack/actions/workflows/release.yml)
|
||||
workflow](https://github.com/hanzoai/pack/actions/workflows/release.yml)
|
||||
will automatically:
|
||||
- Build and publish the frontend Docker image to
|
||||
[GHCR](https://github.com/orgs/railwayapp/packages?repo_name=railpack)
|
||||
@@ -57,9 +57,9 @@ platforms to the GitHub release.
|
||||
|
||||
After pushing a tag:
|
||||
|
||||
1. Check the [Actions tab](https://github.com/railwayapp/railpack/actions) to
|
||||
1. Check the [Actions tab](https://github.com/hanzoai/pack/actions) to
|
||||
monitor the release workflow
|
||||
2. Verify the [GitHub release](https://github.com/railwayapp/railpack/releases)
|
||||
2. Verify the [GitHub release](https://github.com/hanzoai/pack/releases)
|
||||
is created with the correct artifacts
|
||||
3. Confirm the frontend Docker image is available in the [package
|
||||
registry](https://github.com/railwayapp/railpack/pkgs/container/railpack-frontend)
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist/node-angular/browser\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist/node-angular/browser\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/build\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/build\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/out\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/out\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/build/client\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/build/client\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/theoutput\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/theoutput\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy\n\t}\n}\n\n# site block, listens on the $PORT environment variable, automatically assigned by railway\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
"Caddyfile": "# global options\n{\n\tadmin off\n\tpersist_config off\n\tauto_https off\n\n\tlog {\n\t\tformat json\n\t}\n\n\tservers {\n\t\ttrusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app\n\t}\n}\n\n# site block, listens on the $PORT environment variable assigned at deploy time\n:{$PORT:80} {\n\tlog {\n\t\tformat json\n\t}\n\n\trespond /health 200\n\n\t# Security headers\n\theader {\n\t\t# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type\n\t\tX-Content-Type-Options \"nosniff\"\n\t\t# Remove Server header\n\t\t-Server\n\t}\n\n\t# serve from the 'dist' folder (Vite builds into the 'dist' folder)\n\troot * /app/dist\n\n\t# Handle static files\n\tfile_server {\n\t\thide .git\n\t\thide .env*\n\t}\n\n\t# Compression with more formats\n\tencode {\n\t\tgzip\n\t\tzstd\n\t}\n\n\t# match against direct against HTML file matches, folder-level index.html, and optionally fallback to root index.html\n\ttry_files {path} {path}.html {path}/index.html /index.html\n}\n"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ type GenerateBuildPlanOptions struct {
|
||||
StartCommand string
|
||||
PreviousVersions map[string]string
|
||||
ConfigFilePath string
|
||||
ErrorMissingStartCommand bool // enabled on railway
|
||||
ErrorMissingStartCommand bool // when true, a missing start command fails the build instead of warning
|
||||
}
|
||||
|
||||
type BuildResult struct {
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
}
|
||||
},
|
||||
"secrets": [
|
||||
"RAILWAY_SECRET_1",
|
||||
"RAILWAY_SECRET_2"
|
||||
"MY_SECRET_1",
|
||||
"MY_SECRET_2"
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
|
||||
@@ -73,7 +73,7 @@ func TestGenerateContext(t *testing.T) {
|
||||
"commands": ["echo building"]
|
||||
}
|
||||
},
|
||||
"secrets": ["RAILWAY_SECRET_1", "RAILWAY_SECRET_2"],
|
||||
"secrets": ["MY_SECRET_1", "MY_SECRET_2"],
|
||||
"deploy": {
|
||||
"startCommand": "echo hello",
|
||||
"variables": {
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
}
|
||||
|
||||
servers {
|
||||
trusted_proxies static private_ranges 100.0.0.0/8 # trust railway's proxy
|
||||
trusted_proxies static private_ranges 100.0.0.0/8 # trust the private-range reverse proxy in front of the app
|
||||
}
|
||||
}
|
||||
|
||||
# site block, listens on the $PORT environment variable, automatically assigned by railway
|
||||
# site block, listens on the $PORT environment variable assigned at deploy time
|
||||
:{$PORT:80} {
|
||||
log {
|
||||
format json
|
||||
|
||||
@@ -247,8 +247,7 @@ func (p *NodeProvider) StartCommandHelp() string {
|
||||
"4. An Nx workspace with a Next.js app (nx.json + next)\n\n" +
|
||||
"If you have a static site, you can set the RAILPACK_SPA_OUTPUT_DIR environment variable\n" +
|
||||
"containing the directory of your built static files.\n\n" +
|
||||
"For multi-app Nx workspaces, set RAILPACK_NX_APP to select which app to deploy.\n\n" +
|
||||
"For more information, see the Node.js production deployment guide: https://railway.app/docs/deploy/node"
|
||||
"For multi-app Nx workspaces, set RAILPACK_NX_APP to select which app to deploy."
|
||||
}
|
||||
|
||||
func (p *NodeProvider) GetStartCommand(ctx *generate.GenerateContext) string {
|
||||
|
||||
@@ -10,7 +10,7 @@ func (p *NodeProvider) configureSvelteKit(ctx *generate.GenerateContext, build *
|
||||
}
|
||||
|
||||
// Causes @sveltejs/adapter-auto to select adapter-node, so the build emits a Node server.
|
||||
// Oddly, GCP_BUILDPACKS is the only env var adapter-auto recognizes for Node; there is no generic/Railway signal.
|
||||
// Oddly, GCP_BUILDPACKS is the only env var adapter-auto recognizes for Node; there is no generic PaaS signal.
|
||||
ctx.Logger.LogInfo("SvelteKit with adapter-auto detected, forcing adapter-node")
|
||||
build.AddVariables(map[string]string{"GCP_BUILDPACKS": "true"})
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module github.com/railwayapp/railpack
|
||||
module example.com/go-mod
|
||||
|
||||
go 1.23
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@ The containerized application can be deployed to any platform that supports Dock
|
||||
- Azure Container Apps
|
||||
- Digital Ocean App Platform
|
||||
- Fly.io
|
||||
- Railway
|
||||
|
||||
### DIY Deployment
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@ The containerized application can be deployed to any platform that supports Dock
|
||||
- Azure Container Apps
|
||||
- Digital Ocean App Platform
|
||||
- Fly.io
|
||||
- Railway
|
||||
|
||||
### DIY Deployment
|
||||
|
||||
|
||||
@@ -9,9 +9,7 @@ tags:
|
||||
|
||||
# Rails Starter Example
|
||||
|
||||
This is a [Ruby on Rails](https://rubyonrails.org/) starter app that connects to a Railway Postgres database and supports [Action Cable](https://guides.rubyonrails.org/action_cable_overview.html).
|
||||
|
||||
[](https://railway.app/new/template/sibk1f)
|
||||
This is a [Ruby on Rails](https://rubyonrails.org/) starter app that connects to a Postgres database and supports [Action Cable](https://guides.rubyonrails.org/action_cable_overview.html).
|
||||
|
||||
## ✨ Features
|
||||
|
||||
@@ -22,11 +20,10 @@ This is a [Ruby on Rails](https://rubyonrails.org/) starter app that connects to
|
||||
|
||||
## 💁♀️ How to use
|
||||
|
||||
- [Create a Railway project with the Postgres plugin](https://railway.app/project?plugins=postgresql)
|
||||
- Connect to your Railway project with `railway link`
|
||||
- Provision a Postgres database and set `DATABASE_URL`
|
||||
- Install Ruby requirements `bundle install`
|
||||
- Migrate the database `railway run rake db:migrate`
|
||||
- Run Rails `railway run bin/rails server`
|
||||
- Migrate the database `rake db:migrate`
|
||||
- Run Rails `bin/rails server`
|
||||
|
||||
## 📝 Notes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user