Skip to content

About

Integration test bundle for docker-lab infrastructure - security and completeness validation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Core Stack Test

License: PolyForm Noncommercial Docker Compose

Integration test bundle for core infrastructure.

Purpose

Validate security and completeness of the core boilerplate through:

  • Security tests - TLS, secrets, permissions, network isolation
  • Integration tests - Service connectivity, health checks, databases
  • Variation testing - Different configuration combinations

Patterns

10 self-hosted application patterns ready for deployment:

Pattern Service URL Status Description
GoToSocial social.dockerlab.peermesh.org Ready Lightweight ActivityPub social network
WriteFreely blog.dockerlab.peermesh.org Ready Minimalist federated blogging platform
PeerTube video.dockerlab.peermesh.org Ready Decentralized video hosting with ActivityPub
Listmonk newsletter.dockerlab.peermesh.org Ready Self-hosted newsletter and mailing list manager
rss2bsky N/A (daemon) Ready RSS to Bluesky syndication bridge
ActivityPods pods.dockerlab.peermesh.org Ready Solid pods with ActivityPub integration
n8n automation.dockerlab.peermesh.org Ready Workflow automation platform
Pixelfed photos.dockerlab.peermesh.org Ready Federated image sharing (Instagram alternative)
Castopod podcast.dockerlab.peermesh.org Ready Podcast hosting with ActivityPub
Manyfold models.dockerlab.peermesh.org Ready 3D model library management

Quick Start

Minimal Stack

Deploy core infrastructure only (Traefik, PostgreSQL, Redis):

git clone https://github.com/peermesh/core-stack-test
cd core-stack-test

cp .env.example .env
./scripts/generate-secrets.sh

# Minimal deployment (foundation + GoToSocial)
docker compose --profile traefik --profile gotosocial up -d

Note: This repository includes a standalone foundation layer (./foundation/) so it can run without the external peer-mesh-docker-lab dependency.

Full Stack

Deploy all patterns with full monitoring:

git clone https://github.com/peermesh/core-stack-test
cd core-stack-test

cp .env.example .env
./scripts/generate-secrets.sh

# Full deployment (requires 8GB+ RAM)
docker compose --profile full up -d

Single Pattern

Deploy a specific pattern:

# Example: GoToSocial only
docker compose --profile gotosocial up -d

# Example: WriteFreely only
docker compose --profile writefreely up -d

Pattern Details

GoToSocial

Lightweight ActivityPub social network server.

docker compose --profile gotosocial up -d

WriteFreely

Minimalist, federated blogging platform.

docker compose --profile writefreely up -d

PeerTube

Decentralized video hosting with ActivityPub federation.

  • URL: https://video.dockerlab.peermesh.org
  • Stack: Node.js, PostgreSQL, Redis
  • Resources: 2GB RAM minimum
  • Docs: patterns/peertube/README.md
docker compose --profile peertube up -d

Listmonk

High-performance newsletter and mailing list manager.

docker compose --profile listmonk up -d

rss2bsky

RSS feed to Bluesky syndication daemon.

docker compose --profile rss2bsky up -d

ActivityPods

Solid pods with ActivityPub integration for decentralized data.

docker compose --profile activitypods up -d

n8n

Workflow automation platform (Zapier/IFTTT alternative).

  • URL: https://automation.dockerlab.peermesh.org
  • Stack: Node.js, PostgreSQL
  • Resources: 512MB RAM minimum
  • Docs: patterns/n8n/README.md
docker compose --profile n8n up -d

Pixelfed

Federated image sharing platform (Instagram alternative).

  • URL: https://photos.dockerlab.peermesh.org
  • Stack: PHP/Laravel, PostgreSQL, Redis
  • Resources: 1GB RAM minimum
  • Docs: patterns/pixelfed/README.md
docker compose --profile pixelfed up -d

Castopod

Podcast hosting platform with ActivityPub federation.

docker compose --profile castopod up -d

Manyfold

3D model library management for makers.

  • URL: https://models.dockerlab.peermesh.org
  • Stack: Ruby on Rails, PostgreSQL
  • Resources: 512MB RAM minimum
  • Docs: patterns/manyfold/README.md
docker compose --profile manyfold up -d

VPS Deployment

Requirements

  • Docker 24+
  • Docker Compose v2
  • 4GB RAM minimum (8GB for full stack)
  • Domain with DNS configured
  • Ports 80, 443 open

DNS Configuration

Point these subdomains to your VPS IP:

social.dockerlab.peermesh.org    -> YOUR_VPS_IP
blog.dockerlab.peermesh.org      -> YOUR_VPS_IP
video.dockerlab.peermesh.org     -> YOUR_VPS_IP
newsletter.dockerlab.peermesh.org -> YOUR_VPS_IP
pods.dockerlab.peermesh.org      -> YOUR_VPS_IP
automation.dockerlab.peermesh.org -> YOUR_VPS_IP
photos.dockerlab.peermesh.org    -> YOUR_VPS_IP
podcast.dockerlab.peermesh.org   -> YOUR_VPS_IP
models.dockerlab.peermesh.org    -> YOUR_VPS_IP

Deployment Steps

# 1. SSH into VPS
ssh user@your-vps

# 2. Clone repository
git clone https://github.com/peermesh/core-stack-test
cd core-stack-test

# 3. Configure environment
cp .env.example .env
nano .env  # Update domain, email, etc.

# 4. Generate secrets
./scripts/generate-secrets.sh

# 5. Deploy
docker compose --profile full up -d

# 6. Verify deployment
./tests/run-all.sh

TLS Certificates

Traefik handles automatic Let's Encrypt certificate provisioning:

# In .env
ACME_EMAIL=admin@yourdomain.org
DOMAIN=dockerlab.peermesh.org

Structure

core-stack-test/
├── docker-compose.yml    # Main stack definition
├── .env.example          # Configuration template
├── patterns/             # Pattern-specific configurations
│   ├── gotosocial/
│   ├── writefreely/
│   ├── peertube/
│   ├── listmonk/
│   ├── rss2bsky/
│   ├── activitypods/
│   ├── n8n/
│   ├── pixelfed/
│   ├── castopod/
│   └── manyfold/
├── variations/           # Alternative configurations
│   ├── minimal/          # Smallest testable bundle
│   └── full-stack/       # All services enabled
├── tests/                # Test scripts
│   ├── security/         # Security validation
│   └── integration/      # Service integration
└── docs/                 # Documentation

Testing

Run All Tests

./tests/run-all.sh

Security Tests

./tests/security/tls-check.sh
./tests/security/secrets-scan.sh
./tests/security/permissions-check.sh

Integration Tests

./tests/integration/health-checks.sh
./tests/integration/connectivity.sh
./tests/integration/database.sh

Documentation


Related


License

Original source code and documentation in this repository are licensed under the PolyForm Noncommercial License 1.0.0 (LICENSE). See COPYRIGHT, COMMERCIAL-LICENSE.md for commercial use, THIRD_PARTY_NOTICES.md for third-party components, and DEPENDENCY-LICENSE-POLICY.md for how project and dependency licenses interact.

Third-party components (including container images and upstream pattern applications) remain under their respective licenses; the project license does not replace them.

About

Integration test bundle for docker-lab infrastructure - security and completeness validation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages