Skip to content

Latest commit

 

History

87 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FOSShowcase

Run unit tests Swift Package Manager

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:

Documentation

For guides, articles, and API documentation see the library's documentation on the Web or in Xcode.

Alpha Stability Warning

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

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

FOSShowcaseWebApp is an Ignite-based web application that presents an HTTP version of the application to the public at http://www.foscomputerservices.com.

FOSShowcaseiOSApp

FOSShowcaseiOSApp is a cross-platform SwiftUI-based application that runs on:

Deploying

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.

Routine deploy (code / config change)

Run from a machine that has the canonical secrets at ~/.foscs/fosshowcase/{.env,ssl/}:

git commit ...        # commit your change first
./deploy/deploy.sh

deploy/deploy.sh ProxyJumps through the fos-openclaw host (the VM's DMZ VLAN is reachable only via the host), then:

  1. rsyncs the repo to /opt/fosshowcase on the VM,
  2. delivers .env + ssl/ (mode 600), and
  3. runs docker compose up -d --build and prints docker compose ps.

Notes:

  • A deploy rebuilds both Swift apps (~20–40 min) — the Dockerfiles COPY the 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.example documents the required variables.
  • Override targets via env: VM_HOST, JUMP_HOST (set JUMP_HOST="" to deploy directly when already on the internal network), SRC_SECRETS.

Full VM rebuild (disposable VM)

If the VM is lost, rebuild from the runbook:

  1. deploy/provision-vm.sh — create the Tart VM on VLAN 3 (VLAN_IFACE=vlan1),
  2. in-guest provisioning (static IP, Docker, NTP, deploy/nic-offload-off.service, SSH hardening),
  3. install the host LaunchAgents (deploy/com.foscs.tart-fos-showcase*.plist) for auto-start on reboot + daily checkpoints, then
  4. 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.

Maintainers

This project is maintained by David Hunt owner of FOS Computer Services, LLC.

License

FOSShowcase is under the Apache License. See the LICENSE file for more information.

About

Swift/Vapor/SwiftUI application for fsocomputerservices.com showcase and customer portal

Resources

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages