FOSShowcase contains a number of applications that showcase the Open Source technologies developed by David Hunt of FOS Comoputer Services, LLC. It demonstrates how to use Swift to build an M-V-VM full-stack suite of applications:
- Vapor-based Backend Web Server deployed on AWS
- Ignite-based Web Front End
- iOS Application
- iPadOS Application
- macOS Application
- watchOS Application
- tvOS Application
- visionOS Application
- Skip-based Android Application
For guides, articles, and API documentation see the library's documentation on the Web or in Xcode.
Please note that these libraries are currently a work in progress. The APIs are rapidly evolving and while the overall architecture is set, breaking changes will occur until 1.0 is released. The documentation is evolving, but the 'Getting Started' guidance is incomplete. Nonetheless, the implementations are stable and unit tests are in place to ensure proper code coverage and stability of all publicly-facing APIs. This warning will remain in place until I feel that these limitations are remedied. Please log any issues that you might find or suggestions for improvements.
FOSShowcaseWebServer is the web service backend that supports the various front end applications.
For guides, articles, and API documentation see the library's documentation on the Web or in Xcode.
FOSShowcaseWebApp is an Ignite-based web application that presents an HTTP version of the application to the public at http://www.foscomputerservices.com.
FOSShowcaseiOSApp is a cross-platform SwiftUI-based application that runs on:
The public web service (Vapor backend + Ignite web app, behind nginx) runs as a
Docker Compose stack on an isolated Tart Linux VM (fos-showcase, 10.1.3.10)
on the fos-openclaw host, on the UniFi "Public Servers" VLAN-3 DMZ. The repo is
the source of truth and the VM is disposable. Full architecture, network rules, and
the rebuild procedure are in docs/runbook-pi-to-vm.md.
Run from a machine that has the canonical secrets at ~/.foscs/fosshowcase/{.env,ssl/}:
git commit ... # commit your change first
./deploy/deploy.shdeploy/deploy.sh ProxyJumps through the fos-openclaw host (the VM's DMZ VLAN is
reachable only via the host), then:
- rsyncs the repo to
/opt/fosshowcaseon the VM, - delivers
.env+ssl/(mode 600), and - runs
docker compose up -d --buildand printsdocker compose ps.
Notes:
- A deploy rebuilds both Swift apps (~20–40 min) — the Dockerfiles
COPYthe whole repo, so any change invalidates the shared build cache. - Secrets and TLS certs are not in git; they live at
~/.foscs/fosshowcase/and are pushed at deploy time.deploy/env.exampledocuments the required variables. - Override targets via env:
VM_HOST,JUMP_HOST(setJUMP_HOST=""to deploy directly when already on the internal network),SRC_SECRETS.
If the VM is lost, rebuild from the runbook:
deploy/provision-vm.sh— create the Tart VM on VLAN 3 (VLAN_IFACE=vlan1),- in-guest provisioning (static IP, Docker, NTP,
deploy/nic-offload-off.service, SSH hardening), - install the host LaunchAgents (
deploy/com.foscs.tart-fos-showcase*.plist) for auto-start on reboot + daily checkpoints, then deploy/deploy.sh.
Network and database authorization (UDM port-forward + firewall, Postgres pg_hba)
is permanent and managed in the openclaw-config repo — it does not need redoing
per deploy.
This project is maintained by David Hunt owner of FOS Computer Services, LLC.
FOSShowcase is under the Apache License. See the LICENSE file for more information.