102 Commits

Author SHA1 Message Date
Marc Campbell
fc840af123 Merge pull request #175 from replicatedhq/prerelease
Deploy pipeline + Next.js website
2026-02-03 10:26:55 -06:00
Marc Campbell
c4dd8410ea Merge pull request #174 from replicatedhq/feature/nextjs-website
Some checks failed
Deploy ttl.sh / Build & Push Images (push) Failing after 10s
Deploy ttl.sh / Deploy to Production (push) Has been skipped
Deploy ttl.sh / Smoke Test (push) Has been skipped
Next.js website with SSR support
2026-02-03 06:33:55 -06:00
Marc Campbell
8235fbd4ef Add ttl.sh favicon - timer/clock design
- Green gradient background (matches accent color)
- Clock face with timer knob on top
- Clean, recognizable at small sizes

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:31:11 +00:00
Marc Campbell
545872edee Jazz up website content with Factory.ai-inspired design
- Hero: gradient text, glow effects, punchy copy, social proof
- Features: colorful gradient icons, compelling descriptions
- How-to: tabbed interface with Docker/Helm/GitHub Actions examples
- Use Cases: real-world scenarios with highlighted benefits
- Time Limits: clean visual TTL reference
- Footer: cleaner, more modern layout
- Header: improved nav with better hover states

Copy is now more engaging and developer-focused

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:30:42 +00:00
Marc Campbell
3867e10558 Fix hero comment to reference ${IMAGE_NAME}
Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:30:42 +00:00
Marc Campbell
f61fd60925 Replace website with new shadcn/ui design
- Complete redesign using shadcn/ui components
- Dark/light theme support with next-themes
- Modern hero section with terminal animation
- Features, How-to, Use Cases, and Time Limits sections
- Responsive header with mobile menu
- Tailwind CSS v4 with CSS variables for theming
- All custom components (Header, Hero, Features, etc.)
- Full shadcn/ui component library included

Design by Marc via v0.dev

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:30:42 +00:00
Marc Campbell
f2ac28558f Add Next.js website with SSR support
- Create new Next.js app in web/ directory
- Configure standalone output for Docker deployment
- Add Dockerfile with multi-stage build
- Add web service to docker-compose.yaml
- Update nginx to proxy to Next.js container (port 3000)
- Remove static site deployment from Ansible

The website now runs as a containerized Next.js app with SSR,
enabling dynamic features and modern React development.

Note: Static site in static/ folder retained for reference.
Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:30:42 +00:00
Marc Campbell
9aae843dcb Remove TTL expiry verification from smoke test
Reaper runs on interval, so TTL expiry timing is non-deterministic.
Keep just the push/pull validation for now.

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:24:03 +00:00
Marc Campbell
d32aa3f76e Add smoke test: push/pull + TTL expiry verification
After deploy, tests:
1. Push busybox with 5m TTL (uses commit SHA for unique name)
2. Pull back to verify registry works
3. Wait 7 minutes for TTL to expire
4. Verify pull fails (image correctly deleted)

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:04:28 +00:00
Marc Campbell
41695d4a30 Remove unnecessary GHCR token (packages are public)
Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 12:02:47 +00:00
Marc Campbell
b537597c95 Switch from GAR to GHCR for container images
- Update docker-compose.yaml to use ghcr.io/replicatedhq/ttlsh-* images
- Simplify CI auth using GITHUB_TOKEN (no GCP credentials needed)
- Update ansible to use docker login for GHCR instead of gcloud
- Remove google.cloud ansible collection (no longer needed for registry)

GHCR is simpler: automatic auth via GITHUB_TOKEN in Actions,
and packages can be made public for pull access on servers.

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 11:55:06 +00:00
Marc Campbell
4ba01e35fc Fix CI: create empty .env file for docker-compose build
docker-compose.yaml references env_file: .env which is created by
Ansible on the server but doesn't exist in the repo. Create an empty
file during CI build to satisfy the reference.

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 11:45:31 +00:00
Marc Campbell
426f307d11 Merge pull request #173 from replicatedhq/ci/enable-real-deploys
Enable real deploys
2026-02-03 05:43:20 -06:00
Marc Campbell
fa9959bff1 Target prerelease branch for deployment testing
Temporarily deploy on merge to prerelease branch instead of main.
This allows testing the deploy workflow without requiring PR approval.

TODO: Switch back to main after testing is complete.
Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 11:02:50 +00:00
Marc Campbell
d15a431aab Enable real deploys
- Remove dry run flags
- Build and push images to Artifact Registry
- Run Ansible without --check flag

Deploys will now happen automatically on merge to main.

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-03 00:20:42 +00:00
Marc Campbell
39a7890f46 Merge pull request #172 from replicatedhq/ci/add-deploy-workflow
Some checks failed
Deploy ttl.sh (DRY RUN) / Build & Push Images (push) Failing after 7s
Deploy ttl.sh (DRY RUN) / Deploy to Production (push) Has been skipped
Add GitHub Actions workflow for automated deployment
2026-02-02 17:20:07 -06:00
Marc Campbell
233df3c8cb Make workflow dry run only for testing
- Build images but skip push
- Run Ansible with --check flag (no changes made)
- Renamed workflow to indicate dry run mode

This lets us verify credentials and workflow before enabling real deploys.

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-02 20:43:42 +00:00
Marc Campbell
48ea9b9f2d Add GitHub Actions workflow for automated deployment
- Triggers on merge to main
- Uses Doppler for secrets management
- Builds and pushes Docker images to GCP Artifact Registry
- Runs Ansible playbook to deploy to production

Required GitHub secrets:
- DOPPLER_TOKEN: Service token for Doppler ttl-sh project
- SSH_PRIVATE_KEY: Private key for SSH access to production server

Signed-off-by: Marc Campbell <marc.e.campbell@gmail.com>
2026-02-02 20:31:20 +00:00
Josh Sandlin
ec57d1dbdb Merge pull request #168 from replicatedhq/em/minor-formatting-fix
Minor formatting fix
2025-10-01 13:46:29 +00:00
Evans Mungai
24a97db19b Fix html
Signed-off-by: Evans Mungai <evans@replicated.com>
2025-10-01 14:45:20 +01:00
Evans Mungai
677ed78b2d Minor formatting fix
Signed-off-by: Evans Mungai <evans@replicated.com>
2025-10-01 14:38:19 +01:00
Josh Sandlin
0382472923 Merge pull request #167 from replicatedhq/em/add-helm-to-doc
Add helm push example to documentation
2025-10-01 13:34:07 +00:00
Evans Mungai
ffc75ab2ba Add helm push example to documentation
Signed-off-by: Evans Mungai <evans@replicated.com>
2025-10-01 11:09:41 +01:00
Josh Sandlin
512c89fab5 Merge pull request #163 from replicatedhq/joshs/SC-128746
Migrate ttl.sh to Hetzner
2025-09-08 10:36:13 -04:00
Josh Sandlin
6d1d0557bd rework everything to be Ansible and get TLS working 2025-09-05 18:18:28 -04:00
Josh Sandlin
59fbd0ebbe feat: migrate from Heroku to Google Cloud Platform 2025-09-04 15:41:17 -04:00
Ethan Mosbaugh
4366d098e0 Revert "feat: run blob reaper every 72h" (#158)
Some checks failed
Deploy to Heroku / release (push) Failing after 1m40s
2024-10-09 14:10:50 -05:00
Ethan Mosbaugh
1cb3f4e0f7 fix(ci): install heroku cli (#157) 2024-10-09 14:04:39 -05:00
Ethan Mosbaugh
c47255f5a0 Merge pull request #156 from replicatedhq/emosbaugh/sc-112142/ttl-sh-cost-increase-needs-to-be-addressed
feat: run blob reaper every 72h
2024-10-09 13:57:11 -05:00
Ethan Mosbaugh
3048ae6c34 feat: run blob reaper every 72h 2024-10-09 06:27:43 -07:00
Ethan Mosbaugh
ede363e4e8 Reapply "chore: garbage collect now, not in 3 days (#153)" (#154)
This reverts commit 4582df6979.
2024-10-09 06:22:17 -07:00
Ethan Mosbaugh
32f12b8666 Reapply "feat: run blob reaper every 72h (#152)" (#155)
This reverts commit fad0b353a7.
2024-10-09 06:22:06 -07:00
Ethan Mosbaugh
fad0b353a7 Revert "feat: run blob reaper every 72h (#152)" (#155)
Some checks failed
Deploy to Heroku / release (push) Failing after 41s
This reverts commit b7ab57fa9b.
2024-10-08 15:49:15 -05:00
Ethan Mosbaugh
4582df6979 Revert "chore: garbage collect now, not in 3 days (#153)" (#154)
This reverts commit c0fec69508.
2024-10-08 15:38:18 -05:00
Ethan Mosbaugh
c0fec69508 chore: garbage collect now, not in 3 days (#153) 2024-10-08 15:14:14 -05:00
Ethan Mosbaugh
b7ab57fa9b feat: run blob reaper every 72h (#152)
* feat: run blob reaper every 24h

* f

* f

* f

* f

* f

* f

* f

* f

* f
2024-10-08 15:05:19 -05:00
Salah Al Saleh
274ce88d3d Add execute permissions to entrypoint (#150) 2024-03-18 11:59:14 -07:00
Salah Al Saleh
31b03da98f Put back entrypoint (#149) 2024-03-18 11:55:31 -07:00
Salah Al Saleh
bd11003095 Proxy ssl name (#148)
* Proxy ssl name
2024-03-18 11:50:58 -07:00
Salah Al Saleh
50ae487ea6 use router.ttl.sh hostname (#147) 2024-03-18 11:27:03 -07:00
Salah Al Saleh
d940bb3f09 Try proxying to ttl.sh (#146) 2024-03-18 11:10:14 -07:00
Salah Al Saleh
aae863ff09 use heroku hardcoded url (#145) 2024-03-15 12:26:51 -07:00
Salah Al Saleh
7984a3efc5 handle v2/ in nginx config (#144) 2024-03-15 12:11:50 -07:00
Salah Al Saleh
1708b924c7 include mime types (#143) 2024-03-15 11:56:53 -07:00
Salah Al Saleh
9e71d14711 rename nginx dyno to web (#142) 2024-03-15 11:48:41 -07:00
Salah Al Saleh
317b80afbb Specify nginx container CMD (#141) 2024-03-15 11:43:27 -07:00
Salah Al Saleh
9f724f12b9 Deploy nginx as a separate heroku app (#140) 2024-03-15 11:37:14 -07:00
Salah Al Saleh
b186cc1679 Use heroku's app domain (#139)
* Use heroku's app domain

* no port
2024-03-15 11:15:33 -07:00
Salah Al Saleh
0b956e4dff use heroku domains (#138) 2024-03-15 11:10:48 -07:00
Salah Al Saleh
72304f0ac4 Test nginx on port 8080 (#137) 2024-03-15 10:57:09 -07:00