Skip to content

Generic deploys (Fly.io or any VPS)#143

Merged
michael merged 13 commits into
svedit-0-13from
generic-deploy
Jul 23, 2026
Merged

Generic deploys (Fly.io or any VPS)#143
michael merged 13 commits into
svedit-0-13from
generic-deploy

Conversation

@michael

@michael michael commented Jul 19, 2026

Copy link
Copy Markdown
Owner

No description provided.

@vercel

vercel Bot commented Jul 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
editable-website Ready Ready Preview, Comment Jul 21, 2026 10:04pm

@michael
michael changed the base branch from main to svedit-0-13 July 21, 2026 22:57
@michael
michael changed the base branch from svedit-0-13 to typescript-conversion July 21, 2026 22:58
@michael
michael changed the base branch from typescript-conversion to main July 21, 2026 22:58
@michael
michael changed the base branch from main to svedit-0-13 July 23, 2026 13:07
@michael
michael merged commit d903c9c into svedit-0-13 Jul 23, 2026
2 checks passed
michael added a commit that referenced this pull request Jul 23, 2026
* Define node layouts directly in the schema

* Fix video upload hanging in Firefox

Firefox sometimes never fires loadedmetadata on a detached <video>
element with a blob URL, so get_video_dimensions() never resolved and
the upload stalled. Keep the event handler but also poll readyState
every 100ms and resolve once it reaches HAVE_METADATA, then clean up the
interval, object URL, and video source on whichever path wins.

See: https://stackoverflow.com/questions/33116067

* Client-side video processing (#142)

* Client-side video processing

* Detect already web-optimized videos and pass through without processing

* Add docs for video processing

* Transcode videos in the browser on upload

Dropped videos are converted to web-optimized MP4 (H.264 + AAC) in a
background worker using mediabunny. Bitrate is derived from a target
file size (MAX_VIDEO_FILESIZE) and resolution steps down a ladder for
long videos to keep quality acceptable. Already-optimized files are
detected and passed through untouched (or losslessly remuxed from MOV),
and *_optimized.mp4 filenames bypass processing entirely. Documented in
the manual under "Media uploads".

* Convert codebase to TypeScript (#145)

* Convert codebase to TypeScript

* Linting

* Dead code elimination

* Get rid of some dead code in api.remote.ts

* Upgrade to Svedit 0.13.0

* Generic deploys (Fly.io or any VPS) (#143)

* Work towards generic deploys

* Add VPS deploy script

* Harden deploy script

* Improve deploy script

* Improve deploy script

* Add commands for env var management

* Add vps:status command

* Simplify

* Rename to vps-deploy.sh

* No longer derive an app name assuming there's one app per VPS

* Optimize Dockerfile

* Make sure only referenced assets are pushed from local to remote

* Fix a problem where npm run data:help hung when DEPLOY_HOST is present

* Ensure videos can be played when .mp4 url is opened in a tab (#147)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant