Skip to content

Abooow/Aspin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aspin logo

Aspin

A local server host for running apps as persistent background processes. Aspin itself runs as a Windows Service or a macOS launchd daemon, and lets you manage, monitor, and configure multiple apps through a web UI — without dealing with IIS.

It's designed for local development when you want services like DevMail always running in the background.


Screenshot of running apps

Screenshot of app metrics

Screenshot of app logs


What it is (and isn't)

Aspin is not a deployment platform or CI/CD tool. It does not run apps in a virtual environment - processes run directly on your machine. There is no authentication, and it is not meant to be exposed to the public internet.

Think of it as a lightweight alternative to IIS for local use.


How it works

You create an app in Aspin by providing a working directory and a run command. Aspin generates a workflow file with a build step and a startup step - similar in structure to GitHub Actions workflows, but simpler and without any CI/CD automation. Builds must be triggered manually through the UI.

Example workflow (DevMail)

vars:
  output_location: ${{ aspin.apps_directory }}/DevMail
  executable_file_name: DevMail.dll

build:
  steps:
    - name: Restoring application
      working-directory: ${{ app.working_directory }}
      run: dotnet restore

    - name: Publishing application
      working-directory: ${{ app.working_directory }}
      env:
        ASPNETCORE_ENVIRONMENT: Production
        DOTNET_ENVIRONMENT: Production
      run: dotnet publish -o "${{ vars.output_location }}"

startup:
  env:
    DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true
    ASPNETCORE_URLS: ${{ app.urls }}
  working-directory: ${{ vars.output_location }}
  run: dotnet ${{ vars.executable_file_name }}

Features

Monitoring

  • CPU time and usage, virtual and physical memory, thread count
  • OpenTelemetry metrics support - configure OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_HEADERS on an app to have Aspin collect its metrics over gRPC or HTTP Protobuf

Logs

  • Live app logs with ANSI color support
  • Optional log file output

App management

  • Custom environment variables per app
  • Run-on-startup: automatically start selected apps when Aspin starts
  • Retry logic with configurable retry timings

Static site server

  • Built-in static file server for hosting static sites or SPA apps

About

Local app host and process manager for development

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors