# 🏗️ Infrastructure

Infrastructure setup for running and deploying MapleFile software (MaplePress backend, MapleFile, etc.), organized for both development and production environments.

---

## 📂 Directory Structure

```
infrastructure/
├── development/          # Local development infrastructure
│   ├── docker-compose.dev.yml
│   ├── Taskfile.yml
│   └── README.md        # Development setup instructions
│
└── production/          # Production deployment infrastructure
    ├── docker-compose.yml
    ├── .env.sample
    ├── README.md        # Production deployment guide
    ├── nginx/           # Reverse proxy configuration
    ├── monitoring/      # Prometheus + Grafana
    ├── backup/          # Backup automation
    └── scripts/         # Deployment automation
```

---

## 🚀 Quick Start

### For Local Development

If you're a **contributor** or want to **run the project locally**:

👉 **Go to [`development/README.md`](./development/README.md)**

This gives you:
- Local Cassandra cluster (3 nodes)
- Redis cache
- Meilisearch for search
- SeaweedFS for object storage
- WordPress for plugin testing
- All pre-configured for local development

**Quick start:**
```bash
cd development
task dev:start
```

### For Production Deployment

If you're **self-hosting** or **deploying to production**:

👉 **Go to [`production/README.md`](./production/README.md)**

This provides:
- Production-ready Docker Compose setup
- SSL/TLS configuration with Let's Encrypt
- Nginx reverse proxy
- Monitoring with Prometheus + Grafana
- Automated backups
- Security hardening
- Deployment automation

**⚠️ Note:** Production setup requires:
- A server (VPS, cloud instance, or dedicated server)
- A domain name with DNS configured
- Basic Linux administration knowledge

---

## 🎯 Which One Should I Use?

| Scenario | Use This | Location |
|----------|----------|----------|
| Contributing to the project | **Development** | [`development/`](./development/) |
| Running locally for testing | **Development** | [`development/`](./development/) |
| Learning the architecture | **Development** | [`development/`](./development/) |
| Self-hosting for personal use | **Production** | [`production/`](./production/) |
| Deploying for others to use | **Production** | [`production/`](./production/) |
| Running a SaaS business | **Production** | [`production/`](./production/) |

---

## 📚 Documentation

- **Development Setup:** [`development/README.md`](./development/README.md)
- **Production Deployment:** [`production/README.md`](./production/README.md)
- **Architecture Overview:** [`../../CLAUDE.md`](../../CLAUDE.md)

---

## 🤝 Contributing

Found a bug? Want to improve the infrastructure? Please create an [issue](https://codeberg.org/mapleopentech/monorepo/issues/new).

---

## 📝 License

This infrastructure is licensed under the [**GNU Affero General Public License v3.0**](https://opensource.org/license/agpl-v3). See [LICENSE](../../LICENSE) for more information.
