{"id":24795857,"url":"https://github.com/monadical-sas/selfhostyourtech","last_synced_at":"2025-10-20T04:13:36.607Z","repository":{"id":273401761,"uuid":"919571272","full_name":"Monadical-SAS/selfhostyourtech","owner":"Monadical-SAS","description":"🐳 A Docker getting-started kit for new businesses trying to self-host their data! Includes vetted apps for team communication, office document editing, CRM, marketing/publishing, AI, and more.","archived":false,"fork":false,"pushed_at":"2025-08-11T15:56:03.000Z","size":368,"stargazers_count":11,"open_issues_count":9,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-09-26T01:53:06.948Z","etag":null,"topics":["agents","ai","baserow","docker","n8n","nextcloud","own-your-data","self-hosted","self-hosting","tailscale"],"latest_commit_sha":null,"homepage":"https://selfhostyour.tech","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Monadical-SAS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-20T16:27:21.000Z","updated_at":"2025-09-14T09:54:53.000Z","dependencies_parsed_at":"2025-04-09T21:21:01.736Z","dependency_job_id":"0459a30e-f9fb-454a-b997-c9a5df295346","html_url":"https://github.com/Monadical-SAS/selfhostyourtech","commit_stats":null,"previous_names":["monadical-sas/self-hosted-kit","monadical-sas/selfhostyourtech"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Monadical-SAS/selfhostyourtech","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monadical-SAS%2Fselfhostyourtech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monadical-SAS%2Fselfhostyourtech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monadical-SAS%2Fselfhostyourtech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monadical-SAS%2Fselfhostyourtech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Monadical-SAS","download_url":"https://codeload.github.com/Monadical-SAS/selfhostyourtech/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monadical-SAS%2Fselfhostyourtech/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013113,"owners_count":26085232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","baserow","docker","n8n","nextcloud","own-your-data","self-hosted","self-hosting","tailscale"],"created_at":"2025-01-30T00:20:16.476Z","updated_at":"2025-10-12T21:31:51.461Z","avatar_url":"https://github.com/Monadical-SAS.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SelfHostYour.Tech Documentation\n\n## Overview\n\nSelfHostYour.Tech is an all-in-one Docker kit designed to help businesses self-host their complete tech stack. It's specifically tailored for companies with 1 to 100 employees who want to maintain control over their data and services.\n\n**Important Links:**\n- Main Site: [https://selfhostyour.tech](https://selfhostyour.tech)\n- Source Code: [https://github.com/Monadical-SAS/selfhostyourtech](https://github.com/Monadical-SAS/selfhostyourtech)\n- Community: [https://selfhostyour.org](https://selfhostyour.org)\n\n## Getting Started\n\n### DNS Configuration\n\nTo properly set up the DNS for this, you need to configure the following records in your domain's DNS settings:\n\n1. **A Record**:\n   - Create an A record for the root domain (e.g., `example.com`)\n   - Point this record to your server's IP address\n\n2. **Wildcard CNAME Record**:\n   - Create a CNAME record with `*` as the hostname\n   - Point this record to the value of your A record (e.g., `example.com`)\n\n\n| Record Type | Hostname | Value/Points To |\n|-------------|----------|----------------|\n| A           | example.com | 10.34.2.1 (Your server IP) |\n| CNAME       | * | example.com |\n\nThis configuration ensures that both the root domain and all subdomains resolve to your server.\n\n### Quickstart\n\nGet up and running in minutes with our automated installer that configures everything with sensible defaults.\n\n1. Clone the repository (recommended location is `/opt`):\n   ```bash\n   cd /opt\n   git clone https://github.com/Monadical-SAS/selfhostyourtech.git\n   cd selfhostyourtech\n   ```\n\n2. Quickstart (Ubuntu only):\n   ```bash\n   ./bin/shtool quickstart \u003cdomain\u003e \u003cemail\u003e \u003ctraefik_username\u003e \u003ctraefik_password\u003e\n   ```\n\n### Detailed Installation\n\n1. Clone the repository (recommended location is `/opt`):\n   ```bash\n   cd /opt\n   git clone https://github.com/Monadical-SAS/selfhostyourtech.git\n   ```\n\n2. Install Docker (Ubuntu only):\n   ```bash\n   cd /opt/selfhostyourtech\n   ./bin/shtool install_docker\n   ```\n\n3. Configure Let's Encrypt for SSL certificates:\n   ```bash\n   docker compose run --rm manager shtool setup_letsencrypt \u003cdomain\u003e \u003cemail\u003e [traefik_username] [traefik_password] [environment]\n   ```\n   \n   Parameters:\n   - `\u003cdomain\u003e`: Your domain name (required)\n   - `\u003cemail\u003e`: Email for Let's Encrypt notifications (required)\n   - `[username]`: Admin username (optional, defaults to \"admin\")\n   - `[password]`: Admin password (optional, auto-generated if not specified)\n   - `[environment]`: Environment type - \"prod\" or \"dev\" (optional, defaults to \"prod\")\n   \n   Example:\n   ```bash\n   docker compose run --rm manager shtool setup_letsencrypt example.com admin@example.com myadmin mysecurepass prod\n   ```\n   Note: If password is omitted, a secure random password will be generated.\n\n4. Configure your apps by editing the enabled apps file (optional):\n   ```bash\n   nano /opt/selfhostyourtech/etc/apps-enabled.yaml\n   ```\n\n5. Configure application settings including credentials and passwords:\n   ```bash\n   docker compose run --rm manager shtool configure_app_settings\n   ```\n   This interactive tool will help you set up passwords, credentials, and other important settings for all enabled applications.\n\n6. Update the Homer dashboard to reflect your enabled apps (optional):\n   ```bash\n   docker compose run --rm manager shtool update_homer_config\n   ```\n\n7. Deploy your selected apps:\n   ```bash\n   docker compose up -d\n   ```\n\n## Environment Configuration\n\nSelfHostYour.Tech supports two deployment environments:\n\n### Production Environment (prod)\n- **HTTPS enabled**: All services use SSL/TLS certificates from Let's Encrypt\n- **Secure redirects**: HTTP traffic is automatically redirected to HTTPS\n- **Full SSL validation**: Complete certificate chain validation\n- **Recommended for**: Live deployments, production use\n\n### Development Environment (dev)\n- **HTTP only**: Services run without SSL certificates\n- **No redirects**: Direct HTTP access without HTTPS enforcement\n- **Local development**: Suitable for localhost testing\n- **Recommended for**: Testing, development, local setups\n\nThe environment is configured during the `setup_letsencrypt` step and affects all services automatically.\n\n## Starting/Stopping/Status Services\n\n```bash\ndocker compose exec -ti manager shtool start\ndocker compose exec -ti manager shtool stop\ndocker compose exec -ti manager shtool start \u003cservice\u003e\ndocker compose exec -ti manager shtool stop \u003cservice\u003e\ndocker compose exec -ti manager shtool status\ndocker compose exec -ti manager shtool reload\n```\n\n## Managing Services by Docker Compose wrapper\n\nYou can manage individual services using the `shtool manage` command followed by the service name and docker-compose command:\n\n```bash\ndocker compose run --rm manager shtool manage \u003cservice_name\u003e \u003ccommand\u003e\n```\n\nExamples:\n- Check service status: `docker compose run --rm manager shtool manage nextcloud ps`\n- Stop a service: `docker compose run --rm manager shtool manage zulip stop`\n- Start a service: `docker compose run --rm manager shtool manage nextcloud up -d`\n- View logs: `docker compose run --rm manager shtool manage ghost logs -f`\n\n## Deployment Management\n\n### Deploy Individual Services\n\nDeploy or redeploy a specific service:\n```bash\ndocker compose run --rm manager shtool deploy \u003cservice_name\u003e [force_rebuild]\ndocker compose run --rm manager shtool redeploy \u003cservice_name\u003e [force_rebuild]\n```\n\nExamples:\n```bash\n# Deploy Nextcloud\ndocker compose run --rm manager shtool deploy nextcloud\n\n# Redeploy with forced rebuild\ndocker compose run --rm manager shtool redeploy nextcloud true\n```\n\n### Deploy All Services\n\nRedeploy all enabled services:\n```bash\ndocker compose run --rm manager shtool redeploy_all [force_rebuild]\n```\n\nExample:\n```bash\n# Redeploy all services with forced rebuild\ndocker compose run --rm manager shtool redeploy_all true\n```\n\n## Data Management and Cleanup\n\n### Clean All Data\n**⚠️ WARNING: This will permanently delete ALL data**\n\n```bash\ndocker compose run --rm manager shtool clean\n```\n\nThis command will:\n- Stop all services\n- Remove all Docker volumes\n- Require confirmation with a randomly generated code\n\n### Clean Individual Service Data\n**⚠️ WARNING: This will permanently delete data for the specified service**\n\n```bash\ndocker compose run --rm manager shtool clean_app \u003cservice_name\u003e\n```\n\nExample:\n```bash\ndocker compose run --rm manager shtool clean_app nextcloud\n```\n\n### Application Configuration\n\nConfigure all applications at once:\n```bash\ndocker compose run --rm manager shtool configure_app_settings\n```\n\nConfigure a single application:\n```bash\ndocker compose run --rm manager shtool configure_app \u003capp_name\u003e\n```\n\nExample:\n```bash\ndocker compose run --rm manager shtool configure_app nextcloud\n```\n\nThis will launch a configuration script specifically for the selected application, allowing you to set or update:\n- Admin credentials\n- Database settings\n- Storage paths\n- Integration options\n- Application-specific parameters\n\n## For zulip\n\nUse this command to create the organization.\n\n```bash\ncd ./apps/zulip\ndocker compose exec -u zulip zulip /home/zulip/deployments/current/manage.py generate_realm_creation_link\n```\n\n## For Authentik\n\nUse this url to access the admin settings.\n\nhttps://authentik.\u003cyour_domain\u003e/if/flow/initial-setup/\n\n## CUSTOM_SUBDOMAIN Configuration Guide\n\nThe `CUSTOM_SUBDOMAIN` environment variable provides a way to override the default subdomain behavior in your application. When configured, it allows you to specify a custom subdomain that will be used instead of the application's default subdomain logic.\n\n### Configuration\n\nAdd the following to your application's `.env` file:\n\n```env\nCUSTOM_SUBDOMAIN=your_custom_subdomain\n```\n\n## Available Services\n\n### Communication\n- **Zulip**\n  - Description: Team chat with threaded conversations\n  - Type: Chat Platform\n\n### Office\n- **Nextcloud**\n  - Description: File sharing and collaboration platform\n  - Type: Nextcloud\n\n- **ONLYOFFICE**\n  - Description: Online document editing suite\n  - Type: Document Editor\n\n- **HedgeDoc**\n  - Description: Collaborative markdown editor\n  - Type: Documentation\n\n### CRM \u0026 Data\n- **Baserow**\n  - Description: No-code database \u0026 CRM solution\n  - Type: Database/CRM\n\n- **Twenty**\n  - Description: Modern CRM platform\n  - Type: CRM\n\n### Security\n- **Authentik**\n  - Description: Identity provider \u0026 SSO solution\n  - Type: Identity Management\n\n- **Traefik**\n  - Description: Reverse proxy \u0026 SSL management\n  - Type: Traefik\n\n### Publishing\n- **Ghost**\n  - Description: Professional publishing platform\n  - Type: CMS\n\n- **WordPress**\n  - Description: Popular content management system\n  - Type: CMS\n\n### Development\n- **Gitea**\n  - Description: Self-hosted Git service with web interface\n  - Type: Version Control\n\n### AI \u0026 Productivity\n- **LibreChat**\n  - Description: AI chat interface supporting multiple providers\n  - Type: AI Assistant\n\n### Analytics\n- **Matomo**\n  - Description: Privacy-focused web analytics platform\n  - Type: Analytics\n\n### System\n- **Homer**\n  - Description: Homepage dashboard\n  - Type: System Dashboard\n\n- **Portainer**\n  - Description: Container management web interface\n  - Type: Container Management\n\n## Coming Soon\nThe following services are in development or planned for future releases:\n\n- ArchiveBox - Web archiving tool\n- Databox - Analytics platform\n- Duplicati - Backup solution\n- And more...\n\n## Troubleshooting\n\n### Common Issues\n\n- **Service doesn't start**: Check logs with `docker compose run --rm manager shtool manage \u003cservice\u003e logs`\n- **Can't access service**: Verify Traefik configuration and DNS settings\n- **SSL certificate problems**: Run `docker compose run --rm manager shtool setup_letsencrypt` again\n- **Incorrect credentials**: Reconfigure application settings with `docker compose run --rm manager shtool configure_app_settings`\n- **Configuration issues**: Check application-specific configuration files in the service directory\n- **Environment mismatch**: Ensure your environment (prod/dev) is correctly configured\n\n### Environment-Specific Issues\n\n**Production Environment:**\n- Verify domain DNS is pointing to your server\n- Ensure ports 80 and 443 are open and accessible\n- Check Let's Encrypt certificate generation in Traefik logs\n\n**Development Environment:**\n- Services will be accessible via HTTP only\n- Use `localhost` or your local IP address\n- No SSL certificates required\n\n## Best Practices\n\n1. Regularly back up your data\n2. Keep the system updated with `git pull` in the repository directory\n3. Monitor system resources to ensure adequate capacity\n4. Implement proper security measures and network isolation\n5. Set up monitoring for critical services\n6. Use production environment for live deployments\n7. Test changes in development environment first\n\n## Support and Community\n\nJoin our Zulip community at [https://zulip.selfhostyour.tech](https://zulip.selfhostyour.tech) for support, discussions, and to connect with other users.\n\nFor bug reports and feature requests, please use the GitHub repository at [https://github.com/Monadical-SAS/selfhostyourtech](https://github.com/Monadical-SAS/selfhostyourtech). \n\n## Table of Contents\n\n- [Authentik](#authentik)\n- [Ghost](#ghost)\n- [HedgeDoc](#hedgedoc)\n- [Nextcloud](#nextcloud)\n- [ONLYOFFICE](#onlyoffice)\n- [Traefik](#traefik)\n- [Twenty](#twenty)\n- [Zulip](#zulip)\n\n## Authentik\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `PG_DB` | PostgreSQL database name | `traefik` |\n| `PG_USER` | PostgreSQL username | `traefik` |\n| `PG_PASS` | PostgreSQL password | *Required* |\n| `AUTHENTIK_SECRET_KEY` | Secret key for sessions \u0026 encryption | *Required* |\n| `AUTHENTIK_LISTEN__HTTP` | HTTP listen address and port | `0.0.0.0:9000` |\n| `AUTHENTIK_LISTEN__HTTPS` | HTTPS listen address and port | `0.0.0.0:9443` |\n| `SMTP_HOST` | SMTP server address | *Optional* |\n| `SMTP_USERNAME` | SMTP server username | *Optional* |\n| `SMTP_PASSWORD` | SMTP server password | *Optional* |\n| `EMAIL_FROM` | Email sender address | *Optional* |\n\n## Ghost\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `MYSQL_DATABASE` | MySQL database name | `nextcloud` |\n| `MYSQL_USER` | MySQL username | `nextcloud` |\n| `MYSQL_ROOT_PASSWORD` | MySQL root password | *Required* |\n| `MYSQL_PASSWORD` | MySQL user password | *Required* |\n\n## HedgeDoc\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `POSTGRES_USER` | PostgreSQL username | `hedgedoc` |\n| `POSTGRES_DB` | PostgreSQL database name | `hedgedoc` |\n| `POSTGRES_PASSWORD` | PostgreSQL password | *Required* |\n| `HD_SESSION_SECRET` | Session encryption key | *Required* |\n\n## Nextcloud\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `MYSQL_DATABASE` | MySQL database name | `nextcloud` |\n| `MYSQL_USER` | MySQL username | `nextcloud` |\n| `MYSQL_ROOT_PASSWORD` | MySQL root password | *Required* |\n| `MYSQL_PASSWORD` | MySQL user password | *Required* |\n| `TRUSTED_PROXIES` | Allowed proxy IP ranges | `172.0.0.0/8` |\n\n## ONLYOFFICE\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `POSTGRES_DB` | PostgreSQL database name | `onlyoffice` |\n| `POSTGRES_USER` | PostgreSQL username | `onlyoffice` |\n| `REDIS_PASSWORD` | Redis password | *Required* |\n| `DB_PASSWORD` | Database password | *Required* |\n| `JWT_SECRET` | JWT token secret key | *Required* |\n\n## Traefik\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `TRAEFIK_USER_AUTH` | HTTP Basic Auth credentials | *Required* |\n| `EMAIL` | Email for Let's Encrypt | *Required* |\n\n## Twenty\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `PG_DATABASE_USER` | PostgreSQL username | *Required* |\n| `PG_DATABASE_PASSWORD` | PostgreSQL password | *Required* |\n| `PG_DATABASE_HOST` | PostgreSQL host | *Required* |\n| `PG_DATABASE_PORT` | PostgreSQL port | *Required* |\n| `SERVER_URL` | Public URL for the server | *Required* |\n| `REDIS_URL` | Redis connection URL | *Required* |\n| `STORAGE_TYPE` | Storage type (local/S3) | *Required* |\n| `STORAGE_S3_REGION` | S3 region | *Optional* |\n| `STORAGE_S3_NAME` | S3 bucket name | *Optional* |\n| `STORAGE_S3_ENDPOINT` | S3 endpoint URL | *Optional* |\n| `APP_SECRET` | Application secret key | *Required* |\n| `EMAIL_FROM_ADDRESS` | Sender email address | *Optional* |\n| `EMAIL_FROM_NAME` | Sender name | *Optional* |\n| `EMAIL_SYSTEM_ADDRESS` | System email address | *Optional* |\n| `EMAIL_DRIVER` | Email driver (SMTP/etc.) | *Optional* |\n| `EMAIL_SMTP_HOST` | SMTP server host | *Optional* |\n| `EMAIL_SMTP_PORT` | SMTP server port | *Optional* |\n| `EMAIL_SMTP_USER` | SMTP username | *Optional* |\n| `EMAIL_SMTP_PASSWORD` | SMTP password | *Optional* |\n\n## Zulip\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `POSTGRES_DB` | PostgreSQL database name | *Required* |\n| `POSTGRES_USER` | PostgreSQL username | *Required* |\n| `POSTGRES_PASSWORD` | PostgreSQL password | *Required* |\n| `MEMCACHED_PASSWORD` | Memcached password | *Required* |\n| `REDIS_PASSWORD` | Redis password | *Required* |\n| `RABBITMQ_USER` | RabbitMQ username | *Required* |\n| `RABBITMQ_PASSWORD` | RabbitMQ password | *Required* |\n| `EMAIL_HOST` | SMTP server host | *Optional* |\n| `EMAIL_HOST_USER` | SMTP username | *Optional* |\n| `EMAIL_HOST_PASSWORD` | SMTP password | *Optional* |\n| `EMAIL_PORT` | SMTP port | *Optional* |\n| `NOREPLY_EMAIL` | No-reply email address | *Optional* |\n| `ZULIP_SECRET_KEY` | Secret key for Zulip | *Required* |\n| `GIPHY_API_KEY` | Giphy integration API key | *Optional* |\n| `VIDEO_ZOOM_CLIENT_ID` | Zoom Client ID | *Optional* |\n| `VIDEO_ZOOM_CLIENT_SECRET` | Zoom Client Secret | *Optional* |\n| `SOCIAL_AUTH_OIDC_SECRET` | OIDC authentication secret | *Optional* |\n\n## Gitea\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `GITEA_POSTGRES_USER` | PostgreSQL username | `gitea` |\n| `GITEA_POSTGRES_DB` | PostgreSQL database name | `gitea` |\n| `GITEA_POSTGRES_PASSWORD` | PostgreSQL password | *Required* |\n\n## LibreChat\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `LIBRECHAT_PORT` | LibreChat application port | `3080` |\n| `UID` | User ID for container permissions | `1000` |\n| `GID` | Group ID for container permissions | `1000` |\n| `ALLOW_EMAIL_LOGIN` | Enable email login | `true` |\n| `ALLOW_REGISTRATION` | Enable user registration | `true` |\n| `JWT_SECRET` | JWT token secret key | *Required* |\n| `JWT_REFRESH_SECRET` | JWT refresh token secret | *Required* |\n| `CREDS_KEY` | Credentials encryption key | *Required* |\n| `CREDS_IV` | Credentials initialization vector | *Required* |\n| `MEILI_MASTER_KEY` | Meilisearch master key | *Required* |\n| `SESSION_EXPIRY` | Session expiration time (ms) | `900000` |\n| `REFRESH_TOKEN_EXPIRY` | Refresh token expiration (ms) | `604800000` |\n\n## Matomo\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `MATOMO_MYSQL_ROOT_PASSWORD` | MariaDB root password | *Required* |\n| `MATOMO_MYSQL_USER` | MariaDB username | `matomo` |\n| `MATOMO_MYSQL_PASSWORD` | MariaDB user password | *Required* |\n| `MATOMO_MYSQL_DATABASE` | MariaDB database name | `matomo` |\n\n## WordPress\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `WORDPRESS_MYSQL_ROOT_PASSWORD` | MariaDB root password | *Required* |\n| `WORDPRESS_MYSQL_USER` | MariaDB username | `wordpress` |\n| `WORDPRESS_MYSQL_PASSWORD` | MariaDB user password | *Required* |\n| `WORDPRESS_MYSQL_DATABASE` | MariaDB database name | `wordpress` |\n\n## Portainer\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| *No additional variables* | Uses Docker socket and data volume | - |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonadical-sas%2Fselfhostyourtech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonadical-sas%2Fselfhostyourtech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonadical-sas%2Fselfhostyourtech/lists"}