Skip to content

Commit 195814a

Browse files
committed
update docs, improve readme
1 parent 8c68164 commit 195814a

File tree

9 files changed

+258
-501
lines changed

9 files changed

+258
-501
lines changed

.github/workflows/release.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ jobs:
3131
cache: npm
3232
cache-dependency-path: ./web/package-lock.json
3333

34+
- name: Set up QEMU
35+
uses: docker/setup-qemu-action@v3
36+
37+
- name: Set up Docker Buildx
38+
uses: docker/setup-buildx-action@v3
39+
40+
- name: Login to Docker Hub
41+
uses: docker/login-action@v3
42+
with:
43+
registry: docker.io
44+
username: ${{ secrets.DOCKER_USERNAME }}
45+
password: ${{ secrets.DOCKER_TOKEN }}
46+
3447
- name: Login to GitHub Container Registry
3548
uses: docker/login-action@v3
3649
with:

.goreleaser.yml

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,96 @@ release:
6666
footer: |
6767
## Docker Images
6868
69-
Docker images are available on [GitHub Container Registry](https://github.com/sirrobot01/mcpulse/pkgs/container/mcpulse).
69+
Docker images are available on
70+
71+
- [GitHub Container Registry](https://github.com/sirrobot01/mcpulse/pkgs/container/mcpulse)
72+
- [Docker Hub](https://hub.docker.com/r/cy01/mcpulse)
7073
7174
```bash
7275
docker pull ghcr.io/sirrobot01/mcpulse:{{ .Tag }}
76+
docker pull cy01/mcpulse:{{ .Tag }}
7377
```
7478
7579
dockers:
80+
# GitHub Container Registry - amd64
7681
- image_templates:
7782
- "ghcr.io/sirrobot01/mcpulse:{{ .Tag }}"
7883
- "ghcr.io/sirrobot01/mcpulse:latest"
84+
use: buildx
85+
dockerfile: docker/Dockerfile.goreleaser
86+
build_flag_templates:
87+
- "--pull"
88+
- "--label=org.opencontainers.image.created={{.Date}}"
89+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
90+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
91+
- "--label=org.opencontainers.image.version={{.Version}}"
92+
- "--platform=linux/amd64"
93+
goarch: amd64
94+
95+
# GitHub Container Registry - arm64
96+
- image_templates:
97+
- "ghcr.io/sirrobot01/mcpulse:{{ .Tag }}-arm64"
98+
- "ghcr.io/sirrobot01/mcpulse:latest-arm64"
99+
use: buildx
100+
dockerfile: docker/Dockerfile.goreleaser
101+
build_flag_templates:
102+
- "--pull"
103+
- "--label=org.opencontainers.image.created={{.Date}}"
104+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
105+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
106+
- "--label=org.opencontainers.image.version={{.Version}}"
107+
- "--platform=linux/arm64"
108+
goarch: arm64
109+
110+
# Docker Hub - amd64
111+
- image_templates:
112+
- "docker.io/cy01/mcpulse:{{ .Tag }}"
113+
- "docker.io/cy01/mcpulse:latest"
114+
use: buildx
115+
dockerfile: docker/Dockerfile.goreleaser
116+
build_flag_templates:
117+
- "--pull"
118+
- "--label=org.opencontainers.image.created={{.Date}}"
119+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
120+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
121+
- "--label=org.opencontainers.image.version={{.Version}}"
122+
- "--platform=linux/amd64"
123+
goarch: amd64
124+
125+
# Docker Hub - arm64
126+
- image_templates:
127+
- "docker.io/cy01/mcpulse:{{ .Tag }}-arm64"
128+
- "docker.io/cy01/mcpulse:latest-arm64"
129+
use: buildx
79130
dockerfile: docker/Dockerfile.goreleaser
80131
build_flag_templates:
81132
- "--pull"
82133
- "--label=org.opencontainers.image.created={{.Date}}"
83134
- "--label=org.opencontainers.image.title={{.ProjectName}}"
84135
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
85136
- "--label=org.opencontainers.image.version={{.Version}}"
86-
- "--platform=linux/amd64"
137+
- "--platform=linux/arm64"
138+
goarch: arm64
139+
140+
docker_manifests:
141+
# GHCR manifests
142+
- name_template: "ghcr.io/sirrobot01/mcpulse:{{ .Version }}"
143+
image_templates:
144+
- "ghcr.io/sirrobot01/mcpulse:{{ .Version }}-amd64"
145+
- "ghcr.io/sirrobot01/mcpulse:{{ .Version }}-arm64"
146+
147+
- name_template: "ghcr.io/sirrobot01/mcpulse:latest"
148+
image_templates:
149+
- "ghcr.io/sirrobot01/mcpulse:latest-amd64"
150+
- "ghcr.io/sirrobot01/mcpulse:latest-arm64"
151+
152+
# Docker Hub manifests
153+
- name_template: "docker.io/cy01/mcpulse:{{ .Version }}"
154+
image_templates:
155+
- "docker.io/cy01/mcpulse:{{ .Version }}-amd64"
156+
- "docker.io/cy01/mcpulse:{{ .Version }}-arm64"
157+
158+
- name_template: "docker.io/cy01/mcpulse:latest"
159+
image_templates:
160+
- "docker.io/cy01/mcpulse:latest-amd64"
161+
- "docker.io/cy01/mcpulse:latest-arm64"

README.md

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -45,51 +45,37 @@
4545

4646
## Quick Start
4747

48-
### Prerequisites
48+
### Using Docker (Recommended)
4949

50-
- Docker & Docker Compose
51-
- OR: Go 1.21+ and Node.js 20+ (for local development)
52-
53-
### Using Docker Compose (Recommended)
54-
55-
1. Clone the repository:
56-
```bash
57-
git clone https://github.com/sirrobot01/mcpulse.git
58-
cd mcpulse
59-
```
60-
61-
2. Create environment file:
6250
```bash
63-
cp .env.example .env
64-
cp config.yaml.example config.yaml
65-
# Edit .env and config.yaml to set database credentials and desired ports.
66-
```
51+
# Download configuration files
52+
curl -O https://raw.githubusercontent.com/sirrobot01/mcpulse/main/docker-compose.yml
53+
curl -o config.yaml https://raw.githubusercontent.com/sirrobot01/mcpulse/main/config.yaml.example
6754

68-
3. Start the services:
69-
```bash
55+
# Start MCPulse
7056
docker compose up -d
7157
```
7258

73-
4. Access the dashboard:
74-
```
75-
http://localhost:8080 # Main application
76-
http://localhost:8080/metrics # Prometheus metrics
77-
http://localhost:8080/health # Health check
78-
```
59+
Access the dashboard at **http://localhost:8080**
60+
61+
### Docker Images
62+
63+
Pre-built images are available:
64+
- **GitHub Container Registry**: `ghcr.io/sirrobot01/mcpulse:latest`
65+
- **Docker Hub**: `cy01//mcpulse:latest`
66+
67+
For detailed installation and configuration, see the [documentation](https://docs.mcpulse.io)
7968

80-
This starts:
81-
- **MCPulse Server**: http://localhost:8080
82-
- **gRPC Server**: localhost:9090(this is used for thr SDKs)
83-
- **Prometheus Metrics**: http://localhost:8080/metrics
8469

8570
## SDKs
8671

87-
MCPulse provides official SDKs for easy integration with your MCP servers:
72+
### Integration SDKs
73+
- **Python**: https://github.com/sirrobot01/mcpulse-python
74+
- **Go**: https://github.com/sirrobot01/mcpulse-go
75+
- **Node.js/TypeScript**: coming soon
8876

89-
- Python: https://github.com/sirrobot01/mcpulse-python
90-
- Go: https://github.com/sirrobot01/mcpulse-go
91-
- Node.js/TypeScript: coming soon
92-
- MCPulse Proxy: coming soon
77+
### MCP Server
78+
- **mcp-mcpulse**: https://github.com/sirrobot01/mcp-mcpulse - Query MCPulse data from any MCP client
9379

9480

9581
## Documentation

config.yaml.example

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ server:
22
host: "0.0.0.0"
33
port: 8080
44
grpc_port: 9090
5-
read_timeout: "30s"
6-
write_timeout: "30s"
7-
idle_timeout: "120s"
85

96
database:
107
type: "timescaledb"
@@ -13,30 +10,7 @@ database:
1310
database: "mcp_analytics"
1411
username: "mcp_user"
1512
password: "changeme"
16-
max_connections: 50
17-
max_idle_connections: 10
18-
connection_max_lifetime: "1h"
1913
migrations_path: "migrations"
20-
retention:
21-
raw_data: "90d"
22-
hourly_aggregates: "1y"
23-
daily_aggregates: "forever"
24-
25-
ingestion:
26-
buffer_size: 10000
27-
batch_size: 1000
28-
batch_timeout: "5s"
29-
max_batch_wait: "10s"
30-
rate_limit:
31-
enabled: true
32-
requests_per_second: 1000
33-
burst: 2000
34-
35-
auth:
36-
api_keys:
37-
- key: "sk_dev_replace_this_key"
38-
name: "Development"
39-
permissions: ["read", "write"]
4014

4115
privacy:
4216
sanitize_parameters: true
@@ -59,9 +33,3 @@ logging:
5933
level: "info"
6034
format: "json"
6135
output: "stdout"
62-
63-
features:
64-
websocket: true
65-
anomaly_detection: false
66-
alerting: false
67-
multi_tenancy: false

docker-compose.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ services:
2121

2222
# MCPulse Server
2323
mcpulse:
24-
build:
25-
context: .
26-
dockerfile: docker/Dockerfile
24+
image: ghcr.io/sirrobot01/mcpulse:latest
2725
container_name: mcpulse-server
2826
environment:
2927
MCPULSE_DATABASE_HOST: timescale

docs/docs/configuration.md

Lines changed: 0 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ auth:
5656
jwt_secret: "your-secret-key-here-at-least-32-chars"
5757
access_token_ttl: "15m"
5858
refresh_token_ttl: "7d"
59-
api_keys:
60-
- key: "sk_dev_replace_this_key"
61-
name: "Development"
62-
permissions: ["read", "write"]
6359

6460
privacy:
6561
sanitize_parameters: true
@@ -84,12 +80,6 @@ logging:
8480
level: "info"
8581
format: "json"
8682
output: "stdout"
87-
88-
features:
89-
websocket: true
90-
anomaly_detection: false
91-
alerting: false
92-
multi_tenancy: false
9383
```
9484
9585
## Server Configuration
@@ -248,28 +238,6 @@ auth:
248238

249239
# Refresh token lifetime
250240
refresh_token_ttl: "7d"
251-
252-
# Static API keys (for SDK authentication)
253-
api_keys:
254-
- key: "sk_prod_abc123..."
255-
name: "Production"
256-
permissions: ["read", "write"]
257-
- key: "sk_dev_xyz789..."
258-
name: "Development"
259-
permissions: ["read", "write"]
260-
```
261-
262-
### Generating API Keys
263-
264-
Use the CLI to generate secure API keys:
265-
266-
```bash
267-
mcpulse auth create-key --name "Production Server"
268-
```
269-
270-
Or generate manually:
271-
```bash
272-
openssl rand -hex 32
273241
```
274242
275243
### Environment Variables
@@ -465,41 +433,6 @@ This will check for:
465433
- Type correctness
466434
- Security issues (weak secrets, etc.)
467435

468-
## Production Best Practices
469-
470-
### Security
471-
472-
1. **Use strong JWT secrets**:
473-
```bash
474-
openssl rand -base64 48
475-
```
476-
477-
2. **Enable parameter sanitization**:
478-
```yaml
479-
privacy:
480-
sanitize_parameters: true
481-
```
482-
483-
3. **Use environment variables for secrets**:
484-
```bash
485-
export MCPULSE_DATABASE_PASSWORD="..."
486-
export MCPULSE_AUTH_JWT_SECRET="..."
487-
```
488-
489-
### Performance
490-
491-
1. **Tune buffer sizes** for your load
492-
2. **Adjust batch timeout** based on latency requirements
493-
3. **Configure retention** to manage storage
494-
4. **Set appropriate connection pool sizes**
495-
496-
### Reliability
497-
498-
1. **Enable health checks** for monitoring
499-
2. **Configure appropriate timeouts**
500-
3. **Enable Prometheus metrics**
501-
4. **Use JSON logging** for structured logs
502-
503436
## Example Configurations
504437

505438
### Development
@@ -517,45 +450,6 @@ privacy:
517450
sanitize_parameters: false
518451
```
519452
520-
### Production
521-
522-
```yaml
523-
server:
524-
host: "0.0.0.0"
525-
port: 8080
526-
database:
527-
host: "db.prod.example.com"
528-
max_connections: 100
529-
retention:
530-
raw_data: "30d"
531-
hourly_aggregates: "1y"
532-
logging:
533-
level: "info"
534-
format: "json"
535-
privacy:
536-
sanitize_parameters: true
537-
monitoring:
538-
prometheus:
539-
enabled: true
540-
```
541-
542-
### High Availability
543-
544-
```yaml
545-
server:
546-
port: 8080
547-
read_timeout: "60s"
548-
write_timeout: "60s"
549-
database:
550-
max_connections: 200
551-
max_idle_connections: 50
552-
ingestion:
553-
buffer_size: 50000
554-
batch_size: 5000
555-
rate_limit:
556-
requests_per_second: 10000
557-
```
558-
559453
## Next Steps
560454
561455
- [Integrate an SDK](./sdks/overview)

0 commit comments

Comments
 (0)