Set up a minimal S3-compatible object storage service in Go for single-server deployments
A skill for setting up and configuring a minimal S3-compatible object storage service written in Go. This implementation is designed for single-server, single-drive deployments where simplicity and performance matter more than redundancy or replication.
This skill helps you set up Stupid Simple S3, a lightweight S3-compatible storage service that:
When a user requests help with Stupid Simple S3, follow these steps:
1. **Repository Setup**
- Clone or examine the `espebra/stupid-simple-s3` repository
- Review the Go source code structure
- Identify configuration requirements
2. **Environment Configuration**
- List all required environment variables
- Help configure storage paths, ports, and authentication settings
- Explain each configuration option's purpose
3. **Build and Deployment**
- Provide Go build instructions
- Set up systemd service file or Docker container
- Configure reverse proxy (Varnish/nginx) for HTTPS termination
4. **Bucket Management**
- Demonstrate CreateBucket and DeleteBucket operations
- Show how to configure multi-bucket support
- Provide examples using AWS CLI or SDK
5. **Client Integration**
- Show how to configure AWS CLI to use the service
- Provide code examples for common operations (upload, download, delete)
- Demonstrate multipart upload for large files
6. **Testing and Verification**
- Test basic operations (PUT, GET, DELETE)
- Verify AWSv4 signature authentication
- Test multipart upload functionality
```bash
go build -o stupid-simple-s3
export SSS3_PORT=8080
export SSS3_DATA_DIR=/var/lib/sss3
export SSS3_ACCESS_KEY=your_access_key
export SSS3_SECRET_KEY=your_secret_key
./stupid-simple-s3
aws configure set aws_access_key_id your_access_key
aws configure set aws_secret_access_key your_secret_key
aws configure set default.s3.signature_version s3v4
aws --endpoint-url=http://localhost:8080 s3 mb s3://mybucket
aws --endpoint-url=http://localhost:8080 s3 cp file.txt s3://mybucket/
aws --endpoint-url=http://localhost:8080 s3 cp s3://mybucket/file.txt ./
```
When implementing or deploying this service, consider:
1. **Reverse Proxy**: Always deploy behind nginx/Varnish for HTTPS
2. **Storage Location**: Use fast local storage (SSD preferred)
3. **Backup Strategy**: Since there's no redundancy, implement external backups
4. **Resource Limits**: Set appropriate ulimits for file descriptors
5. **Monitoring**: Track disk usage, request rates, and error rates
**Use Stupid Simple S3 when:**
**Use full S3 or MinIO when:**
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/stupid-simple-s3-setup/raw