Git Product home page Git Product logo

serversideup / spin Goto Github PK

View Code? Open in Web Editor NEW
962.0 15.0 31.0 4.15 MB

๐Ÿš€ Replicate your production environment locally using Docker. Just run "spin up". It's really that easy.

Home Page: https://serversideup.net/open-source/spin/

License: GNU General Public License v3.0

Shell 97.53% Dockerfile 2.47%
docker development-environment docker-compose docker-swarm laravel nodejs devops

spin's Introduction

Spin Header

Spin Header

Build Status License Support us
npm Packagist Downloads Discourse users Discord

Introduction

Stop wasting time fixing production issues you've already solved. Spin is a bash utility that improves the user-experience for teams using Docker. Replicate any environment on any machine, regardless if they are running MacOS, Windows, or Linux. Centralize your infrastructure from a single configuration file using Docker.

Spin is a wrapper script that dramatically improves the developer experience when working with Docker. Spin uses officially supported features and best practices from Docker.

Features
Replicate in any Environment Runs on Mac, Windows, Linux Choose Any Host
Framework Agnostic Zero-downtime Deployments Docker Syntax Simplified
Simple Server Management GitHub Action Support Automated SSL

Installation & Usage

Spin is flexible and able to be installed via:

Simple Install Command

bash -c "$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)"

Create a new project

Spin has spin new to create a new project with Spin installed, as well as spin init to add Spin to an existing project.

spin new laravel {{ your project name }}

How Spin Works

Spin serves as a collection of open source technologies, put together in one simple experience.

Spin uses these proven technologies

We also use a number of our other open source projects in Spin

Demo

Here's a demo showing a process of creating a new Laravel project and deploying it to production:

Resources

  • Website overview of the product.
  • Docs for a deep-dive on how to use the product.
  • Discord for friendly support from the community and the team.
  • GitHub for source code, bug reports, and project management.
  • Get Professional Help - Get video + screen-sharing help directly from the core contributors.

Contributing

As an open-source project, we strive for transparency and collaboration in our development process. We greatly appreciate any contributions members of our community can provide. Whether you're fixing bugs, proposing features, improving documentation, or spreading awareness - your involvement strengthens the project. Please review our contribution guidelines and code of conduct to understand how we work together respectfully.

Need help getting started? Join our Discord community and we'll help you out!

Our Sponsors

All of our software is free an open to the world. None of this can be brought to you without the financial backing of our sponsors.

Sponsors

Individual Supporters

alexjustesenย ย GeekDougleย ย 

About Us

We're Dan and Jay - a two person team with a passion for open source products. We created Server Side Up to help share what we learn.

Dan Pastori
Jay Rogers


Find us at:

  • ๐Ÿ“– Blog - Get the latest guides and free courses on all things web/mobile development.
  • ๐Ÿ™‹ Community - Get friendly help from our community members.
  • ๐Ÿคตโ€โ™‚๏ธ Get Professional Help - Get video + screen-sharing support from the core contributors.
  • ๐Ÿ’ป GitHub - Check out our other open source projects.
  • ๐Ÿ“ซ Newsletter - Skip the algorithms and get quality content right to your inbox.
  • ๐Ÿฅ Twitter - You can also follow Dan and Jay.
  • โค๏ธ Sponsor Us - Please consider sponsoring us so we can create more helpful resources.

Our products

If you appreciate this project, be sure to check out our other projects.

๐Ÿ“š Books

๐Ÿ› ๏ธ Software-as-a-Service

  • Bugflow: Get visual bug reports directly in GitHub, GitLab, and more.
  • SelfHost Pro: Connect Stripe or Lemonsqueezy to a private docker registry for self-hosted apps.

๐ŸŒ Open Source

spin's People

Contributors

danpastori avatar jaydrogers avatar joecianflone avatar nexxai avatar oldskool73 avatar szepeviktor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spin's Issues

Update Nuxt Content to 3.8

Problem

Proposed Solution

Technical Updates

  • Ensure Nuxt Content is updated to 3.8
  • Update Node to use v20 (ensure .nvmrc file is udpated)
  • Ensure deployments are working (โš ๏ธ these are deployed differently than serversideup/php -- CloudFlare pages directly deploys it)
  • Ensure the sitemap is generating correctly

Social Images

Image

  • Use an OG Image generator to create social images

Figma Asset

https://www.figma.com/file/Oi4qvxnCYkhTehVGI61l4Q/Spin-Website?type=design&node-id=703-600&mode=design&t=2V3I4c1hs6el7rLt-11

Improve pull caching

Problem

  • The docker pull cache is user-wide (not on a per project basis)

Proposed Solution

  • Change caching to write to a file on a per directory basis
  • Load the file to check the time
  • Update the line on a new udpate

Design structure for configuration files with Spin

๐Ÿ˜• Problem

  • spin needs a very easy way to configure settings for infrastructure, but we do not have a standard of what this should look like

Every project will need the following configurations:

  1. Global spin variables (for all hosts)
  2. Host specific variables (support many hosts, which means many files)
  3. Hosts inventory file (what Ansible calls it, containing a list of all hosts)
  4. Service configurations (things like Traefik that need config files)

๐ŸŽฏ Design goals

  • All configurations should be stored in the repository and version controlled
  • This includes secrets that configure a server
  • Spin shall use spin vault (a shortcut to 'ansible vault') to help users encrypt their secrets (with AES256) and keep them in version control

๐Ÿ’ชHow it works now

We currently have this concept working, but we need to merge everything into one project repository. This comes with defining standards of what project directories will look like.

๐Ÿ•Š๏ธ Proposed Solution (Draft Status & Open for comment)

โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ .gitattributes
โ”œโ”€โ”€ ๐Ÿšจ .gitignore (need to modify this to exclude .vault-password)
โ”œโ”€โ”€ โœจ .infrastructure
โ”‚		โ””โ”€โ”€dev
โ”‚			โ””โ”€โ”€ traefik
โ”‚				โ”œโ”€โ”€ certificates
โ”‚				โ””โ”€โ”€ traefik.yml
โ”‚		โ””โ”€โ”€host_vars
โ”‚			โ”œโ”€โ”€ myserver01.example.com
โ”‚			โ””โ”€โ”€ myserver02.example.com		
โ”‚		โ””โ”€โ”€hosts
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ app
โ”œโ”€โ”€ artisan
โ”œโ”€โ”€ bootstrap
โ”œโ”€โ”€ composer.json
โ”œโ”€โ”€ config
โ”œโ”€โ”€ database
โ”œโ”€โ”€ โœจ docker-compose.yml
โ”œโ”€โ”€ โœจ docker-compose.dev.yml
โ”œโ”€โ”€ โœจ docker-compose.ci.yml
โ”œโ”€โ”€ โœจ docker-compose.prod.yml
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ phpunit.xml
โ”œโ”€โ”€ public
โ”œโ”€โ”€ resources
โ”œโ”€โ”€ routes
โ”œโ”€โ”€ โœจ spin.config.yml
โ”œโ”€โ”€ storage
โ”œโ”€โ”€ tests
โ”œโ”€โ”€ vite.config.js
โ””โ”€โ”€ โœจ .vault-password (optional for using "ansible vault")

Using spin in a project

  • spin will be able to function globally on a system machine or be included as a system dependency
  • Using spin outside of a project is possible, it simply requires at least a docker-compose.yml file to exist
  • If the user is attempting to run spin provision or spin maintain, then it requires a spin.config.yml, which will be the "all" setting for Ansible

Directories in a project

  • Anything highlighted with a โœจ is a new file to be created in a Laravel example project
  • Anything with a ๐Ÿšจ means it needs to be modified if the user chooses to use the feature
  • An _infrastructure folder will be created where users can include external environment configs (like Traefik) but also have a place for host_vars for Ansible to use

Docker Compose files

  • Docker Compose files will be at the root of the project and follow the standards of Docker Compose Overrides
  • spin will default to running docker compose -f docker-compose.yml -f docker-compose.dev.yml, but it can easily be overwrittien to different environments using an environment variable

๐Ÿ™Œ Looking for comments

  1. Do you like the _infrastructure folder standard?
  2. Does the spin.config.yml make sense to have it in the project root?

Discussion

First, congratulations on your first official release! You're doing great! ๐Ÿฅณ

General

After reading through your documentation, I realized that there may be a few real-life cases where the project can not implement (or is difficult to archive). That's why I decided to create this issue, for discussion purposes.


Use case

Let's assume that we need to build the following environments with the same code-base using the popular framework Laravel.
The general requirement is that they should be as consistent as possible, and easy to operate.

General requirements

  • Use a redis instance as a cache service
  • Limit size of log files for all containers
  • Automatically restart the container when it fails
  • Simply launch docker for different environments
  • Friendly with docker compose CLI

Production

  • One web backend can scale to many instances
  • Use traefik as gateway, support HTTP and HTTPS
  • No need for other services like mysql, phpmyadmin attached

Screen Shot 2022-01-27 at 10 59 05

Local

  • Two instances for web backend to test 2 different branches of code
  • The first web backend runs on port 8001
  • Second web backend running on port 8002
  • Use additional mysql, phpmyadmin services for local development
  • phpmyadmin running on port 8080
  • No need to use traefik as gateway as each backend runs on its own port

Screen Shot 2022-01-27 at 10 59 17

Debug

  • A web backend instance, running on port 80
  • A blackfire service for profiling web backend
  • Use additional mysql, phpmyadmin services for local development
  • phpmyadmin running on port 8080
  • No need to use traefik as gateway as each backend runs on its own port

Screen Shot 2022-01-27 at 10 59 43

This setup should follow the official Docker guidlines as much as possible.

What is expected?

I am able to implement this setup using spin.

Cannot install Spin

Current Behavior

~/Developer
โฏ bash -c "$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)"
Cloning Spin "## ๐Ÿ› Fixes\r\n- Improved experience with `lineinfile` on `spin init` (https://github.com/serversideup/spin/commit/4c045dfb49f9f6472f91aba9c93ecd1abb78f4a2)"...

Expected Behavior

Spin is installed

Steps To Reproduce

  1. Run the shell install command on MacOS M1

Environment

~/Developer/CK
โฏ spin debug
Spin Version:
fatal: not a git repository (or any of the parent directories): .git
 (Project Installed)

Operating System Version:
ProductName:		macOS
ProductVersion:		14.2
BuildVersion:		23C64

Docker Info:
WARNING: daemon is not using the default seccomp profile
Client:
 Version:    24.0.6
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.5
    Path:     /Users/neo/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.23.0-desktop.1
    Path:     /Users/neo/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/neo/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /Users/neo/.docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.9
    Path:     /Users/neo/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/neo/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/neo/.docker/cli-plugins/docker-scan
  scout: Docker Scout (Docker Inc.)
    Version:  v1.0.9
    Path:     /Users/neo/.docker/cli-plugins/docker-scout

Server:
 Containers: 7
  Running: 0
  Paused: 0
  Stopped: 7
 Images: 37
 Server Version: 24.0.6
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
 runc version: v1.1.8-0-g82f18fe
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.4.16-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 6
 Total Memory: 15.61GiB
 Name: linuxkit-eaf76893150d
 ID: 233a3b99-6ac3-48e2-899f-6c880fe056cb
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: true
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

Anything else?

No response

Update documentation for Windows users

Problem

  • The current documentation is incomplete

Solution

  • Update the documentation to reflect the latest versions of WSL and Docker Desktop
  • Add instructions on how to install Spin to WSL
  • Ensure Docker permissions work correctly on a brand new install of Laravel

Shell is also a script language

Current Behavior

... although it has much less tools than other script languages

Expected Behavior

  • indent with 4 spaces - I hope 2 is not enough for you
  • move curly brace to a separate line
  • add shebang and script headers
  • move things without side effect (function declaration are not executed!) to the top
  • nice, decorative comments could be removed, use descriptive function names instead
  • Introduce shellcheck in CI
############################################################################################################
# nice, decorative comment
############################################################################################################

Create new Nuxt content site for documentation

Problem

  • Spin's current site is running an older version of Nuxt content
  • In order to build Spin 2.0, we should write the process on how it works first, then build the code around the process

Proposed Solution

`queue:work` and `schedule:work` not working

Current Behavior

No related output in Laravel log file.

Docker log for queue container:

[20-Mar-2024 08:02:18] NOTICE: fpm is running, pid 118
[20-Mar-2024 08:02:18] NOTICE: ready to handle connections
127.0.0.1 -  20/Mar/2024:08:02:19 +0000 "GET /status" 200
127.0.0.1 -  20/Mar/2024:08:02:19 +0000 "GET /ping" 200
[20-Mar-2024 08:02:23] NOTICE: Terminating ...
[20-Mar-2024 08:02:23] NOTICE: exiting, bye-bye!

Docker log for schedule container:

 2024-03-20 08:00:00 Running [App\Jobs\ImportCharges] ............ 123ms FAIL
 2024-03-20 08:00:00 Running [App\Jobs\SyncVehicles] ............... 8ms FAIL
 2024-03-20 08:00:00 Running [App\Jobs\GenerateBills] .............. 9ms FAIL

Expected Behavior

Queues and Schedules should work. In case of error, it should throw some meaningful error in Laravel log (I don't expect this since the queue and schedules work locally, so this probably isn't a coding issue), or should throw some meaningful error to stdout so we can find it using docker logs.

Steps To Reproduce

  1. In Production
  2. Configure queues and scheduler as defined in https://serversideup.net/open-source/docker-php/docs/laravel/laravel-queue
  3. Neither queue or schedules work

My new docker-compose.prod.yml looks like this:

version: '3.8'
services:

  traefik:
      networks:
          - web-public
      ports:
        - "80:80"
        - "443:443"
      # Truncated to make it easy to read
  php:
    image: ${DEPLOYMENT_IMAGE_PHP} # ๐Ÿ‘ˆ Be sure to change this to your own image
    networks:
      - web-public
    volumes:
      - "storage_private:/var/www/html/storage/app/private/"
      - "storage_public:/var/www/html/storage/app/public/"
      - "storage_sessions:/var/www/html/storage/framework/sessions"
      - "storage_logs:/var/www/html/storage/logs"
    environment:
      PHP_POOL_NAME: "my-php-app"
      AUTORUN_ENABLED: "true"
      AUTORUN_LARAVEL_MIGRATION: "true"
    deploy:
      replicas: 2
      update_config:
        parallelism: 1
        delay: 5s
        order: start-first
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.my-php-app.rule=${TRAEFIK_HOST_RULE}"
        - "traefik.http.routers.my-php-app.entrypoints=websecure"
        - "traefik.http.routers.my-php-app.tls=true"
        - "traefik.http.routers.my-php-app.tls.certresolver=letsencryptresolver"
        - "traefik.http.services.my-php-app.loadbalancer.server.port=80"
        - "traefik.http.services.my-php-app.loadbalancer.server.scheme=http"
        # Health check
        - "traefik.http.services.my-php-app.loadbalancer.healthcheck.path=/ping"
        - "traefik.http.services.my-php-app.loadbalancer.healthcheck.interval=100ms"
        - "traefik.http.services.my-php-app.loadbalancer.healthcheck.timeout=75ms"
        - "traefik.http.services.my-php-app.loadbalancer.healthcheck.scheme=http"

  task:
    image: ${DEPLOYMENT_IMAGE_PHP}
    # Switch to "webuser" before running `php artisan`
    # Declare command in list manner for environment variable expansion
    # command: ["su", "www-data", "-c", "php artisan schedule:work"]
    command: ["php", "artisan", "schedule:work"]
    environment:
      PHP_FPM_POOL_NAME: "my-app_task"

  queue:
    image: ${DEPLOYMENT_IMAGE_PHP}
    # Switch to "webuser" before running `php artisan`
    # Declare command in list manner for environment variable expansion
    # command: ["su", "www-data", "-c", "php artisan queue:work --tries=3"]
    command: ["php", "artisan", "queue:listen"]
    environment:
      PHP_FPM_POOL_NAME: "my-app_queue"
  
  # Truncated to keep it short

I tried using www-data and websuer and neither worked. Without providing any user at least the container runs now without failing, but the core process I need doesn't work - queues and schedules.

Environment

This is from my dev. My issue is with prod and I am not sure how to run spin debug on prod.

Spin Version: 
v2.0.0-beta-3 [stable] (User Installed)

Operating System Version: 
ProductName:            macOS
ProductVersion:         14.0
BuildVersion:           23A344

Docker Info: 
WARNING: Plugin "/Users/mathewparet/.docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /Users/mathewparet/.docker/cli-plugins/docker-scan: no such file or directory
WARNING: daemon is not using the default seccomp profile
Client:
 Version:    25.0.2
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.1-desktop.4
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.24.3-desktop.1
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-compose
  debug: Get a shell into any image or container. (Docker Inc.)
    Version:  0.0.22
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-debug
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.21
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  v1.0.4
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.0.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-sbom
  scout: Docker Scout (Docker Inc.)
    Version:  v1.3.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-scout

Server:
 Containers: 16
  Running: 6
  Paused: 0
  Stopped: 10
 Images: 21
 Server Version: 25.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.6.12-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 8
 Total Memory: 7.658GiB
 Name: docker-desktop
 ID: 4bfe35d7-9697-470f-b1c5-18c9c74fd02c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

Anything else?

No response

Use ncurses' tput for colors

spin/bin/spin

Lines 101 to 114 in bccece6

setup_color() {
RAINBOW="
$(printf '\033[38;5;196m')
$(printf '\033[38;5;202m')
$(printf '\033[38;5;226m')
$(printf '\033[38;5;082m')
"
RED=$(printf '\033[31m')
GREEN=$(printf '\033[32m')
YELLOW=$(printf '\033[33m')
BLUE=$(printf '\033[34m')
BOLD=$(printf '\033[1m')
RESET=$(printf '\033[m')
}

Use tput instead!
https://github.com/natelandau/shell-scripting-templates/blob/6fe9e43cb59808b511e6742eb6820bdc66150359/utilities/alerts.bash#L29-L35

Do not talk to OS-es without ncurses :)

Add sponsorships

Discussed in #17

Originally posted by jaydrogers October 3, 2022

๐Ÿ‘‰ Describe the problem

  • GitHub Sponsors need to be listed in our README
  • There are many projects for Server Side Up, so an automated solution is preferred

๐Ÿ‘ฅ Problem evidence & reach

  • All sponsors

๐Ÿฅฐ Describe the "impact" on users?

Resolving this issue will help showcase the support we receive from our members, as well as showcase the projects they support.

๐Ÿ† How to solve this problem

There is an automated GitHub Actions bot that might work: https://github.com/JamesIves/github-sponsors-readme-action

๐Ÿ’ฏ How do we validate the problem is solved?

  • Sponsors should automatically have their profile and avatar listed on our projects

Have spin create required files on installation

Problem

  • The set up for Spin takes a lot of manual work and knowledge of Docker

Proposed Solution

  • Create a template that will install if people install via composer
  • Possibly use a different template if they install via Node

(Minor) Error output during Linux install

Issue description

When installing on Linux following the OSX install instructions per the docs, an error is shown in the output:

โžœ sh -c "$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)"

sh: 185: [: stable: unexpected operator
Cloning Spin...
...etc

The install seems to continue fine though and the repo is pulled.

Environment

  • Operating System Version:
    • Pop_OS 21.10
    • Zsh
    • Gnome Terminal

Steps to reproduce the issue

  1. As above, run curl install command

What is expected?

Install completes with no error output

Add support for a decentralized templating system with `spin new`

Discussed in #57

Originally posted by jaydrogers January 8, 2024

๐Ÿ‘‰ Describe the problem

  • All templates for Spin must be committed to the repository, meaning it's difficult to scale from a community perspective
  • People want to contribute templates, but they don't know how

๐Ÿ‘ฅ Problem evidence & reach

YouTube comment (https://www.youtube.com/watch?v=I_dq-kRDztI):

image

๐Ÿฅฐ Describe the "impact" on users?

This would make the community be more self-sustained and improve compatibility for other people to start using Spin.

๐Ÿ† How to solve this problem

Build a template system based off of NPM

We can use the existing package delivery system of NPM to distribute Docker compose templates. Yeah, I know -- I can't believe I just said that.

Hear me out...

  • NPM is a package system that people already use and most are familiar with
  • Users can easily create their own templates if needed
  • Users can publish their own templates and share it with the world `spin new @myorg/my-awesome-template

Have support for "official templates"

We will continue to support official templates where users can run spin new laravel which would just shortcut to a Server Side Up package.

Guides & Documentation

  • Create a developer guide on how to build and test their own templates

GitHub Actions template does not work out of the box with GitHub Free

Current Behavior

Environments are only available for paid accounts or open source repositories.

Related thread

https://discord.com/channels/910287105714954251/1199805027770974328

image

Expected Behavior

A user with a free private account should be able to use the GitHub actions template out of the box

Steps To Reproduce

  1. spin new laravel
  2. Choose to use GitHub Actions templates
  3. Push to FREE & Private Repo
  4. Attempt to deploy

Environment

N/A

Anything else?

No response

"spin deploy": Allow deployments without CI/CD

Discussed in #61

Originally posted by jaydrogers January 24, 2024

๐Ÿ‘‰ Describe the problem

  • The current version of Spin requires using GitHub Actions or GitLab CI for deployment, adding more knowledge requirements to get started
  • Many users getting started are very confused on how to run deployments

๐Ÿ‘ฅ Problem evidence & reach

Some users have expressed interest in removing this requirement: https://discord.com/channels/910287105714954251/1195096786776359064

๐Ÿฅฐ Describe the "impact" on users?

  • New users can deploy a server on their own very easily

๐Ÿ† How to solve this problem

Solution Overview

We can reduce the knowledge requirements by allowing users to run spin provision (to configure and prepare their server for Docker), then spin deploy to locally deploy their image to their servers.

Spin Diagram

This proposed method eliminates a few headaches:

  • Users don't need to learn GitHub Actions or the deep inner workings on how a Docker Registry works
  • This configuration is a lot easier to debug since its working with systems directly in the user's control

[!NOTE]
This method is intended to be used for very simple set ups. For most environments, it will be recommended to use GitHub Actions or GitLab CI (or comparable) to deploy applications

Deployment Process

  1. Initialize Project (create files)
  2. Configure (ensure Spin configs are set)
  3. Build (ensure tag is set correctly, ensure env exists within application)
  4. Transfer (use docker image save: https://nickjanetakis.com/blog/docker-tip-97-save-and-load-docker-images-from-a-zip-file)
  5. Run docker stack deploy to initialize the transfer

๐Ÿ’ฏ How do we validate the problem is solved?

  • Users can run spin provision (to configure their server) then spin deploy to deploy their stack

Not Work and Get Error 404

Current Behavior

It runs without any problems, but it does not display the website and gives a 404 error.
this picture:
Screenshot 2024-02-01 at 10 53 54โ€ฏAM

Expected Behavior

It should have displayed the site without any problem

Steps To Reproduce

spin new laravel testSpin
cd testSpin
spin up

Environment

Spin Version: 
v2.0.0-beta-3 [stable] (User Installed)

Operating System Version: 
ProductName:            macOS
ProductVersion:         14.2.1
BuildVersion:           23C71

Docker Info: 
WARNING: daemon is not using the default seccomp profile
Client:
 Version:    24.0.7
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.0-desktop.2
    Path:     /Users/hosein/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.23.3-desktop.2
    Path:     /Users/hosein/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/hosein/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.21
    Path:     /Users/hosein/.docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  0.1
    Path:     /Users/hosein/.docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.10
    Path:     /Users/hosein/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/hosein/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/hosein/.docker/cli-plugins/docker-scan
  scout: Docker Scout (Docker Inc.)
    Version:  v1.2.0
    Path:     /Users/hosein/.docker/cli-plugins/docker-scout

Server:
 Containers: 9
  Running: 0
  Paused: 0
  Stopped: 9
 Images: 7
 Server Version: 24.0.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
 runc version: v1.1.10-0-g18a0cb0
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.5.11-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 8
 Total Memory: 3.836GiB
 Name: docker-desktop
 ID: 77aa717e-a1b5-4243-967c-5491f0d5f140
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: fals

Anything else?

No response

(pedantic) Typo in "How spin works" image

Current Behavior

In the readme there's a typo, sever instead of server, in the following image:

image

Expected Behavior

No typos :)

Steps To Reproduce

N/A

Environment

N/A

Anything else?

Thanks for all the work on this project, looking forward to give it a spin!

Spin 2.0 beta fails to install on Mac OS X

Current Behavior

CleanShot 2024-01-04 at 19 23 58@2x

Running the install command in the docs using either curl or wget results in a single Cloning Spin "v2.0.0-beta-2"... message before exiting.

Mac OS X Sonoma 14.0
Tried in both Mac's Terminal and Warp Terminal
Using Oh-my-zsh

Expected Behavior

Spin will install.

Steps To Reproduce

Run bash -c "$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)" in any mac terminal.

Tried with:

  • Warp terminal. (zsh)
  • Built in mac os x terminal (zsh)
  • Orbstack running and docker desktop closed
  • Docker desktop running with orbstack closed.

docker is a available on the command line.

Environment

Unable to run spin debug as it won't install.

`zsh 5.9 (x86_64-apple-darwin23.0)`

`Docker version 24.0.7, build afdd53b`


GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
Copyright (C) 2007 Free Software Foundation, Inc.


### Anything else?

Sorry this is so vague, let me know if you need anything else to debug.

New builds seem to fail

Current Behavior

Builds failing at "Install Composer Dependencies" phase.

This is from the github action logs:

Run $DOCKER_COMPOSE_CMD \
 Container tesla-stats-traefik-1  Running
 Container tesla-stats-mariadb-1  Running
#0 building with "default" instance using docker driver

#1 [php internal] load .dockerignore
#1 transferring context: 7[9](https://github.com/mathewparet/tesla-stats/actions/runs/8951100671/job/24627549744#step:5:10)B done
#1 DONE 0.0s

#2 [php internal] load build definition from Dockerfile
#2 transferring dockerfile: 551B done
#2 DONE 0.0s

#3 [php internal] load metadata for docker.io/serversideup/php:beta-8.3-fpm-nginx
#3 DONE 0.1s

#4 [php base 1/2] FROM docker.io/serversideup/php:beta-8.3-fpm-nginx@sha256:ccfbf70bff5d5750[10](https://github.com/mathewparet/tesla-stats/actions/runs/8951100671/job/24627549744#step:5:11)1d2e9584d69c8fd00b397dc43a664b647846c08701f7be
#4 CACHED

#5 [php base 2/2] RUN install-php-extensions php8.3-bcmath
#5 0.142 install-php-extensions v.2.2.6
#5 0.[14](https://github.com/mathewparet/tesla-stats/actions/runs/8951100671/job/24627549744#step:5:15)2 #StandWithUkraine
#5 0.262 Unable to parse the following module name:
#5 0.262 php8.3
#5 0.263 mkdir: cannot create directory '/usr/src/php': Permission denied
failed to solve: process "/bin/sh -c install-php-extensions php8.3-bcmath" did not complete successfully: exit code: 1
#5 ERROR: process "/bin/sh -c install-php-extensions php8.3-bcmath" did not complete successfully: exit code: 1
------
 > [php base 2/2] RUN install-php-extensions php8.3-bcmath:
0.142 install-php-extensions v.2.2.6
0.142 #StandWithUkraine
0.262 Unable to parse the following module name:
0.262 php8.3
0.263 mkdir: cannot create directory '/usr/src/php': Permission denied
------
Error: Process completed with exit code [17](https://github.com/mathewparet/tesla-stats/actions/runs/8951100671/job/24627549744#step:5:18).

When I ran spin build on local also I get the same error now (spin itself is latest):

[+] Building 41.4s (5/6)                                                                                                  docker:desktop-linux
 => [php internal] load build definition from Dockerfile                                                                                  0.0s
 => => transferring dockerfile: 544B                                                                                                      0.0s
 => [php internal] load metadata for docker.io/serversideup/php:beta-8.3-fpm-nginx                                                        4.2s
 => [php internal] load .dockerignore                                                                                                     0.0s
 => => transferring context: 79B                                                                                                          0.0s
 => [php base 1/2] FROM docker.io/serversideup/php:beta-8.3-fpm-nginx@sha256:ccfbf70bff5d5750101d2e9584d69c8fd00b397dc43a664b647846c087  36.4s
 => => resolve docker.io/serversideup/php:beta-8.3-fpm-nginx@sha256:ccfbf70bff5d5750101d2e9584d69c8fd00b397dc43a664b647846c08701f7be      0.0s
 => => sha256:ccfbf70bff5d5750101d2e9584d69c8fd00b397dc43a664b647846c08701f7be 2.64kB / 2.64kB                                            0.0s
 => => sha256:4246bb70e866bd7dd3dccad886145a828fb1a1323f17ef26ec181465dbcb0b28 225B / 225B                                                0.9s
 => => sha256:5fa66a9bcbf44147c9027140130c3367cc132fb14c4612f07bbe7e71994127dc 19.93kB / 19.93kB                                          0.0s
 => => sha256:38d9cbc94d9e79c445b63152194f2f71247fc73f539ba2b78046fd04c59ff44b 98.13MB / 98.13MB                                         33.5s
 => => sha256:22d97f6a5d13532e867231d23d92620a81874d51a456196be50154eeb32edc08 29.18MB / 29.18MB                                         12.9s
 => => sha256:62c9efc85080f7b48b801c323a43a2c0573d7601d5f985ef087ebd54cf779d43 4.65kB / 4.65kB                                            0.0s
 => => sha256:760f776f4854c09ee785a8e7e0b102fbcd2483de52db872f8a92ce21e43cac04 269B / 269B                                                1.3s
 => => sha256:51668170257e1ab445c40a242e9c054b5505c3c5ebfd539fc819c7ef4aede345 12.78MB / 12.78MB                                         10.3s
 => => sha256:782b49cd2ccffcf798a63225725f7bbc6de789cc07117ecfe92307bbc508c413 492B / 492B                                               11.2s
 => => sha256:2d6b218584308e18193efe30a1ac3ab83fb0da22a529250492a010317c770450 27.95MB / 27.95MB                                         21.9s
 => => sha256:2fdd97cc4bd3ffcedc954c2b2ae7352fd3d6d28ef0099e848a1c211648c24af9 2.45kB / 2.45kB                                           13.3s
 => => extracting sha256:22d97f6a5d13532e867231d23d92620a81874d51a456196be50154eeb32edc08                                                 0.8s
 => => sha256:b08e2a8579535a2ed85af64ced533503bdcbaae6c903e96cad95ccf78a4f2906 245B / 245B                                               13.7s
 => => extracting sha256:4246bb70e866bd7dd3dccad886145a828fb1a1323f17ef26ec181465dbcb0b28                                                 0.0s
 => => sha256:9836a34e66a45e326dd44750efa49e62c4febdd0656e7be17367432bcb0bb061 9.18kB / 9.18kB                                           14.1s
 => => sha256:9b96b9a1e9aec95f0f8a183bfbda70bc26341bc6c3e3f092096ceee0d5ce8fd6 29.57kB / 29.57kB                                         15.0s
 => => sha256:4e7e2cdaf23389efc7ad7f00b12f3dd96bebfdb49c4620aa0c9ba61d8328e332 3.73kB / 3.73kB                                           15.7s
 => => sha256:7d06d693388b96dcb776f1e520387b4f99da219ecfd15092f250493e6f5b87b7 2.82MB / 2.82MB                                           18.3s
 => => sha256:9acf46aab08136d80ff48a6b779c1555f8195766975b1668f85697683a895f1e 2.13kB / 2.13kB                                           19.0s
 => => sha256:6f851a97f7891aac5718c18ef863b8d3adb53b82f77322b49f7deb99f90c4b69 1.30kB / 1.30kB                                           19.8s
 => => sha256:46195f0bdb40268e8cd9c920f188fbde4b7fa7a3daa081cc8cb4c5b95eb52cd2 273B / 273B                                               20.7s
 => => sha256:d9cd125886b99819350fcad33e84022e767b00850a112d6b1afd9b0467739d1d 233B / 233B                                               21.4s
 => => sha256:3195a5e90ddfaa996b328d40ad12f5f4c08332579b1fdbfb9ef0a5072ef51dc8 6.97MB / 6.97MB                                           25.6s
 => => sha256:14d2f67fc5f66f86b69d481b480116a48ee2f1bf60c7cb323e1f093bccaad195 3.17kB / 3.17kB                                           22.6s
 => => sha256:156dea7d6274e34646d2f9a6aaaf9f5779b5cee6ae7c5dc0e120f83b608e83f9 4.44kB / 4.44kB                                           23.4s
 => => sha256:0012b04bf8a608875abb691dae3bf62d13f4101be38c9c3c306ec7ae7b11a1bc 723.92kB / 723.92kB                                       24.2s
 => => sha256:0433f3ebecb6fc0320e4c33df4a8de5c37b94c18f0c77ef847195e30e2e19bd8 4.76kB / 4.76kB                                           24.9s
 => => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B                                                 25.4s
 => => extracting sha256:38d9cbc94d9e79c445b63152194f2f71247fc73f539ba2b78046fd04c59ff44b                                                 1.9s
 => => extracting sha256:760f776f4854c09ee785a8e7e0b102fbcd2483de52db872f8a92ce21e43cac04                                                 0.0s
 => => extracting sha256:51668170257e1ab445c40a242e9c054b5505c3c5ebfd539fc819c7ef4aede345                                                 0.0s
 => => extracting sha256:782b49cd2ccffcf798a63225725f7bbc6de789cc07117ecfe92307bbc508c413                                                 0.0s
 => => extracting sha256:2d6b218584308e18193efe30a1ac3ab83fb0da22a529250492a010317c770450                                                 0.4s
 => => extracting sha256:2fdd97cc4bd3ffcedc954c2b2ae7352fd3d6d28ef0099e848a1c211648c24af9                                                 0.0s
 => => extracting sha256:b08e2a8579535a2ed85af64ced533503bdcbaae6c903e96cad95ccf78a4f2906                                                 0.0s
 => => extracting sha256:9836a34e66a45e326dd44750efa49e62c4febdd0656e7be17367432bcb0bb061                                                 0.0s
 => => extracting sha256:9b96b9a1e9aec95f0f8a183bfbda70bc26341bc6c3e3f092096ceee0d5ce8fd6                                                 0.0s
 => => extracting sha256:4e7e2cdaf23389efc7ad7f00b12f3dd96bebfdb49c4620aa0c9ba61d8328e332                                                 0.0s
 => => extracting sha256:7d06d693388b96dcb776f1e520387b4f99da219ecfd15092f250493e6f5b87b7                                                 0.1s
 => => extracting sha256:9acf46aab08136d80ff48a6b779c1555f8195766975b1668f85697683a895f1e                                                 0.0s
 => => extracting sha256:6f851a97f7891aac5718c18ef863b8d3adb53b82f77322b49f7deb99f90c4b69                                                 0.0s
 => => extracting sha256:46195f0bdb40268e8cd9c920f188fbde4b7fa7a3daa081cc8cb4c5b95eb52cd2                                                 0.0s
 => => extracting sha256:d9cd125886b99819350fcad33e84022e767b00850a112d6b1afd9b0467739d1d                                                 0.0s
 => => extracting sha256:3195a5e90ddfaa996b328d40ad12f5f4c08332579b1fdbfb9ef0a5072ef51dc8                                                 0.1s
 => => extracting sha256:14d2f67fc5f66f86b69d481b480116a48ee2f1bf60c7cb323e1f093bccaad195                                                 0.0s
 => => extracting sha256:156dea7d6274e34646d2f9a6aaaf9f5779b5cee6ae7c5dc0e120f83b608e83f9                                                 0.0s
 => => extracting sha256:0012b04bf8a608875abb691dae3bf62d13f4101be38c9c3c306ec7ae7b11a1bc                                                 0.0s
 => => extracting sha256:0433f3ebecb6fc0320e4c33df4a8de5c37b94c18f0c77ef847195e30e2e19bd8                                                 0.0s
 => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                                                 0.0s
 => ERROR [php base 2/2] RUN install-php-extensions bcmath                                                                                0.7s
------
 > [php base 2/2] RUN install-php-extensions bcmath:
0.082 install-php-extensions v.2.2.6
0.082 #StandWithUkraine
0.142 mkdir: cannot create directory '/usr/src/php': Permission denied
------
failed to solve: process "/bin/sh -c install-php-extensions bcmath" did not complete successfully: exit code: 1

Expected Behavior

Biuld should ideally pass especially since I've not modified the docker-compose files or Dockerfile related:

Run $DOCKER_COMPOSE_CMD \
 Container tesla-stats-traefik-1  Running
 Container tesla-stats-mariadb-1  Running

--------------------------------------------------------------------
 ____                             ____  _     _        _   _
/ ___|  ___ _ ____   _____ _ __  / ___|(_) __| | ___  | | | |_ __
\___ \ / _ \  __\ \ / / _ \  __| \___ \| |/ _` |/ _ \ | | | |  _ \
 ___) |  __/ |   \ V /  __/ |     ___) | | (_| |  __/ | |_| | |_) |
|____/ \___|_|    \_/ \___|_|    |____/|_|\__,_|\___|  \___/| .__/
                                                            |_|

Brought to you by serversideup.net
--------------------------------------------------------------------

๐Ÿ™Œ To support Server Side Up projects visit:
https://serversideup.net/sponsor

-------------------------------------
โ„น๏ธ Container Information
-------------------------------------

Docker user:   root
Docker uid:    0
Docker gid:    0

(init-webserver-config): Processing /etc/nginx/nginx.conf.template โ†’ /etc/nginx/nginx.conf...
(init-webserver-config): Processing /etc/nginx/site-opts.d/http.conf.template โ†’ /etc/nginx/site-opts.d/http.conf...
(init-webserver-config): Processing /etc/nginx/site-opts.d/https.conf.template โ†’ /etc/nginx/site-opts.d/https.conf...
โ„น๏ธ NOTICE (init-webserver-config): Enabling NGINX site with SSL "off"...
[03-Apr-2024 12:38:25] NOTICE: fpm is running, pid 118
[03-Apr-2024 12:38:25] NOTICE: ready to handle connections
127.0.0.1 -  03/Apr/2024:12:38:26 +0000 "GET /status" 200
127.0.0.1 -  03/Apr/2024:12:38:26 +0000 "GET /ping" 200
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 143 installs, 0 updates, 0 removals
  - Downloading dasprid/enum (1.0.5)
  - Downloading bacon/bacon-qr-code (2.0.8)
  - Downloading doctrine/inflector (2.0.10)
  - Downloading symfony/polyfill-ctype (v1.2[9](https://github.com/mathewparet/tesla-stats/actions/runs/8538815611/job/23392217709#step:5:10).0)
  - Downloading webmozart/assert (1.11.0)
  - Installing phpunit/php-code-coverage ([10](https://github.com/mathewparet/tesla-stats/actions/runs/8538815611/job/23392217709#step:5:11).1.12): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.3): Extracting archive
  - Installing myclabs/deep-copy (1.[11](https://github.com/mathewparet/tesla-stats/actions/runs/8538815611/job/23392217709#step:5:12).1): Extracting archive
  - Installing phpunit/phpunit (10.5.11): Extracting archive
  - Installing spomky-labs/pki-framework (1.1.1): Extracting archive
  - Installing psr/http-client (1.0.3): Extracting archive
  - Installing web-auth/metadata-service (4.7.9): Extracting archive
  - Installing web-auth/cose-lib (4.3.0): Extracting archive
  - Installing spomky-labs/cbor-php (3.0.4): Extracting archive
  - Installing web-auth/webauthn-lib (4.7.9): Extracting archive
  - Installing symfony/clock (v6.4.5): Extracting archive
  - Installing symfony/http-client-contracts (v3.4.0): Extracting archive
  - Installing symfony/http-client (v7.0.5): Extracting archive
  - Installing paragonie/sodium_compat (v1.20.0): Extracting archive
  - Installing web-token/jwt-library (3.3.3): Extracting archive
  - Installing spomky-labs/aes-key-wrap (v7.0.0): Extracting archive
  - Installing svgta/svgta-lib (v1.3.4): Extracting archive
  - Installing guzzlehttp/guzzle (7.8.1): Extracting archive
  - Installing svgta/webauthn (v1.0.2): Extracting archive
  - Installing pioneer-dynamics/laravel-passkey (v1.0.6): Extracting archive
  - Installing spatie/backtrace (1.5.3): Extracting archive
  - Installing spatie/flare-client-php (1.4.4): Extracting archive
  - Installing spatie/ignition (1.[12](https://github.com/mathewparet/tesla-stats/actions/runs/8538815611/job/23392217709#step:5:13).0): Extracting archive
  - Installing spatie/laravel-ignition (2.4.2): Extracting archive
  - Installing symfony/postmark-mailer (v7.0.4): Extracting archive
  - Installing tightenco/ziggy (v2.0.3): Extracting archive
  - Installing timokoerber/laravel-one-time-operations (1.4.0): Extracting archive
  - Installing hashids/hashids (5.0.2): Extracting archive
  - Installing graham-campbell/manager (v5.1.0): Extracting archive
  - Installing vinkla/hashids (11.0.0): Extracting archive
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.  

  inertiajs/inertia-laravel ............................................. DONE
  laravel/fortify ....................................................... DONE
  laravel/jetstream ..................................................... DONE
  laravel/sail .......................................................... DONE
  laravel/sanctum ....................................................... DONE
  laravel/tinker ........................................................ DONE
  mathewparet/inertia-config-share ...................................... DONE
  mathewparet/laravel-policy-abilities-export ........................... DONE
  nesbot/carbon ......................................................... DONE
  nunomaduro/collision .................................................. DONE
  nunomaduro/termwind ................................................... DONE
  pioneer-dynamics/laravel-passkey ...................................... DONE
  spatie/laravel-ignition ............................................... DONE
  tightenco/ziggy ....................................................... DONE
  timokoerber/laravel-one-time-operations ............................... DONE
  vinkla/hashids ........................................................ DONE

98 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
[03-Apr-[20](https://github.com/mathewparet/tesla-stats/actions/runs/8538815611/job/23392217709#step:5:21)24 12:38:31] NOTICE: Terminating ...
[03-Apr-2024 12:38:31] NOTICE: exiting, bye-bye!

Steps To Reproduce

  1. In prod
  2. With no change to config
  3. Create a package in GitHub actions to trigger the build.

Environment

Not sure what to put here. Coz this is failing in github actions

When I ran spin debug on local:

Spin Version: 
v2.0.0-beta5 [stable] (User Installed)

Operating System Version: 
ProductName:            macOS
ProductVersion:         14.0
BuildVersion:           23A344

Docker Info: 
WARNING: Plugin "/Users/mathewparet/.docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /Users/mathewparet/.docker/cli-plugins/docker-scan: no such file or directory
WARNING: daemon is not using the default seccomp profile
Client:
 Version:    25.0.2
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.1-desktop.4
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.24.3-desktop.1
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-compose
  debug: Get a shell into any image or container. (Docker Inc.)
    Version:  0.0.22
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-debug
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.21
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  v1.0.4
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.0.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-sbom
  scout: Docker Scout (Docker Inc.)
    Version:  v1.3.0
    Path:     /Users/mathewparet/.docker/cli-plugins/docker-scout

Server:
 Containers: 10
  Running: 0
  Paused: 0
  Stopped: 10
 Images: 27
 Server Version: 25.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.6.12-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 8
 Total Memory: 7.658GiB
 Name: docker-desktop
 ID: 4bfe35d7-9697-470f-b1c5-18c9c74fd02c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

Anything else?

No response

Connect Algolia Search

image

          @jaydrogers We will have to get the env set up for Algolia at some point. We will need the variables defined here: https://github.com/serversideup/docker-php/issues/131

This means we also need to apply under our Server Side Up Account: https://docsearch.algolia.com/

Let me know if you want to connect and get that taken care of at some point.

Originally posted by @danpastori in #34 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.