Skip to content

Repository files navigation

200 OK!

200 OK Web Server

The cross-platform successor to Web Server for Chrome, rebuilt by the original author.

The original Chrome App was used by 200,000+ people for local web development and file sharing. Google discontinued Chrome Apps, so 200 OK Web Server carries that simple workflow forward as:

  • Chrome Extension — A familiar launcher for the installed server app
  • Desktop App — Native app (Tauri) for Mac, Windows, and Linux
  • Android / ChromeOS — Native app, published on Google Play
  • iOS — Native SwiftUI/Swift app with foreground serving (source/device accepted; App Store release pending)
  • ChromeOS Linux — A small Rust launcher/controller for Chromebooks without Google Play

Same author. Same mission. Modern architecture.

Looking for the original Chrome App source code? See the legacy branch.

Feedback, suggestions, and support · Source code · MIT License

Current Status

The Chrome extension, Android app, ChromeOS Linux component, and signed desktop v0.1.5 have shipped. The server runtimes are intentionally not unified:

  • Android source uses a native Kotlin HTTP/storage core behind its Compose UI;
  • desktop v0.1.5 uses the standalone Rust HTTP core behind the Tauri/React control surface;
  • iOS source uses its own Swift HTTP/storage core behind SwiftUI and stops when the app backgrounds;
  • the ChromeOS Linux controller reuses that Rust core; and
  • the extension is a launcher/status surface, not the HTTP server.

Desktop main uses the standalone Rust core for HTTP, filesystem, and server lifecycle work; its Tauri webview is only a static React control surface. Signed desktop v0.1.5 includes the AppImage-first Linux installation, native-host relaunch repair, Linux ARM64 packages, and package-aware signed updates. The former Node/TypeScript CLI was never published to npm and has been retired. GitHub release android-v0.2.1 contains the signed native Kotlin APK and AAB with the physically validated ChromeOS LAN-address correction. The maintainer reports v0.2.1 submitted to Play; Play may continue serving an earlier artifact until review and rollout finish.

A standalone native iOS application is now implemented but not released. It uses SwiftUI and a Swift HTTP/storage implementation, reuses the product artwork rather than another platform's code, and stops when iOS backgrounds it. Its simulator/Release gates and same-Wi-Fi external HTTP campaign passed on the attached physical iPhone; App Store packaging and TestFlight are separate remaining work.

See the living product branding decision, desktop runtime decision, Android runtime decision, iOS runtime decision, ChromeOS extension launcher decision, ChromeOS Crostini launcher/controller decision, and active extension/ChromeOS closeout. The scoped Play-free Linux fallback is recorded in the Crostini tactical.

Install

Core serving features

  • Static file serving with MIME type detection
  • Auto-serves index.html for directories
  • Directory listing with file sizes and dates
  • ETag / If-None-Match (304) and byte-range support
  • Path traversal protection
  • Explicit start/stop lifecycle

Roadmap

Coming Soon

  • Package, TestFlight-test, review, and accept the exact App Store-delivered native iOS app
  • Complete store review, rollout, and controlled delivery proof for the submitted Android and launcher-focused extension candidates
  • Complete the final legacy Chrome App migration update
  • Decide which supported product surfaces should add uploads, HTTPS, or authentication

Later

  • QR code for easy mobile access on LAN
  • Live reload
  • Multiple simultaneous servers
  • Reverse proxy mode

See docs/vision.md for the full roadmap.

Architecture

The repository contains three supported server cores and the platform applications that use or launch them:

packages/ui/         Shared React controls used by the desktop webview
extension/           Chrome Extension
desktop/             Tauri/React controls plus Rust application state
desktop/core/        Rust HTTP core and repository-only smoke executable
desktop/crostini/    ChromeOS Linux launcher/controller using the Rust core
android/             Compose app plus Kotlin HTTP/storage and lifecycle core
ios/                 SwiftUI app plus Swift HTTP/storage and foreground lifecycle

Desktop and ChromeOS Linux use native Rust, Android uses native Kotlin, and iOS uses native Swift. Their core feature contract is kept broadly compatible through tests rather than shared runtime source. The Tauri webview remains for configuration and control, while native Rust owns desktop sockets, filesystem access, HTTP behavior, and server lifecycle. The small ok200-core executable is retained only for repository development and smoke testing; it is not an independently packaged CLI product. Authoritative runtime boundaries live in docs/topics/desktop-runtime.md and docs/topics/android-runtime.md.

The iOS source is a separate native SwiftUI/Swift implementation under ios/; its development candidate is physically accepted but no App Store release exists yet. See docs/topics/ios-runtime.md and docs/tactical/017-ios-store-readiness.md.

Migration from Chrome App

If you were a user of the original Web Server for Chrome:

  1. The new extension is published here: Chrome Web Store listing
  2. The Android / ChromeOS app is published here: Google Play listing
  3. The extension launches the server application; it does not contain the server itself.
  4. Feature parity is a direction, not a claim that every legacy option is already available.

Migration status and the final legacy update plan are in docs/topics/legacy-app-migration.md.

Development

pnpm install
pnpm build       # build frontend applications and shared UI
pnpm test        # run tests
pnpm typecheck   # type check
pnpm lint        # lint with Biome

For the Rust-native desktop workspace and its internal smoke executable:

cd desktop
cargo run -p ok200-core -- --root .. --port 0
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

For the native iOS application:

ios/scripts/check.sh          # simulator unit/UI tests and Release hygiene
ios/scripts/device-smoke.sh   # signed phone install, LAN fetch, background stop

License

MIT

About

200 OK Web Server

Topics

Resources

Stars

1.3k stars

Watchers

67 watching

Forks

Releases

Packages

Contributors

Languages