|
@@ -0,0 +1,93 @@
|
|
|
+# BYOM Infrastructure API
|
|
|
+
|
|
|
+## Overview
|
|
|
+RESTful API service for OVH infrastructure management, built with Go.
|
|
|
+
|
|
|
+## Architecture
|
|
|
+- HTTP Server (port 8080)
|
|
|
+- Middleware for logging and security
|
|
|
+- OVH API integration
|
|
|
+- SSH key management system
|
|
|
+
|
|
|
+## Prerequisites
|
|
|
+- Go 1.x
|
|
|
+- OVH Account
|
|
|
+- Linux/Unix environment
|
|
|
+
|
|
|
+## Quick Start
|
|
|
+```bash
|
|
|
+git clone [repo-url]
|
|
|
+cd byom-infra-api
|
|
|
+go mod download
|
|
|
+go run main.go
|
|
|
+```
|
|
|
+
|
|
|
+## Environment Configuration
|
|
|
+```env
|
|
|
+OVH_APPLICATION_KEY=your_key
|
|
|
+OVH_APPLICATION_SECRET=your_secret
|
|
|
+OVH_CONSUMER_KEY=your_consumer_key
|
|
|
+OVH_ENDPOINT=ovh-eu
|
|
|
+```
|
|
|
+
|
|
|
+## API Endpoints
|
|
|
+
|
|
|
+### SSH Keys
|
|
|
+| Method | Endpoint | Description |
|
|
|
+|--------|----------|-------------|
|
|
|
+| GET | /sshkey | List all keys |
|
|
|
+| GET | /sshkey/{id} | Get specific key |
|
|
|
+| POST | /sshkey | Create new key |
|
|
|
+| DELETE | /sshkey/{keyName} | Delete key |
|
|
|
+
|
|
|
+### Request Examples
|
|
|
+```bash
|
|
|
+# List SSH keys
|
|
|
+curl http://localhost:8080/sshkey
|
|
|
+
|
|
|
+# Create SSH key
|
|
|
+curl -X POST http://localhost:8080/sshkey \
|
|
|
+ -H "Content-Type: application/json" \
|
|
|
+ -d '{"keyName": "mykey", "key": "ssh-ed25519 AAAA..."}'
|
|
|
+```
|
|
|
+
|
|
|
+## Project Structure
|
|
|
+```
|
|
|
+byom-infra-api/
|
|
|
+├── config/ # OVH configuration
|
|
|
+├── handlers/ # Request handlers
|
|
|
+├── middleware/ # HTTP middleware
|
|
|
+├── routes/ # API routes
|
|
|
+├── main.go # Entry point
|
|
|
+└── README.md # Documentation
|
|
|
+```
|
|
|
+
|
|
|
+## Development
|
|
|
+
|
|
|
+### Running Tests
|
|
|
+```bash
|
|
|
+go test ./...
|
|
|
+```
|
|
|
+
|
|
|
+### Building
|
|
|
+```bash
|
|
|
+go build -o byom-api
|
|
|
+```
|
|
|
+
|
|
|
+## Dependencies
|
|
|
+- github.com/gorilla/mux
|
|
|
+- github.com/ovh/go-ovh
|
|
|
+
|
|
|
+## Security
|
|
|
+- TLS support
|
|
|
+- Request logging
|
|
|
+- IP tracking
|
|
|
+- OVH authentication
|
|
|
+
|
|
|
+## License
|
|
|
+MIT License
|
|
|
+
|
|
|
+## Contributing
|
|
|
+1. Fork repository
|
|
|
+2. Create feature branch
|
|
|
+3. Submit pull request
|