Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions .github/workflows/base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,6 @@
#

on:
push:
paths-ignore:
- 'alfs/**'
- 'archived/**'
- 'aries/**'
- 'congig/**'
- 'docker/**'
- 'docs/**'
- 'moon/**'
- 'rust/**'
- 'scripts/**'
- 'third-party/**'
- 'toolchains/**'
- '.github/workflows/release.yml'
pull_request:
paths-ignore:
- 'alfs/**'
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ For now, the monorepo engine could be deployed on your host machine or insulated
1. Pull docker images from Docker Hub

```bash
$ docker pull genedna/mega:mono-pg-0.1-pre-release
$ docker pull genedna/mega:mono-engine-0.1-pre-release
$ docker pull genedna/mega:mono-ui-0.1-pre-release
$ docker pull genedna/mega:mono-pg-latest
Comment thread
genedna marked this conversation as resolved.
$ docker pull genedna/mega:mono-engine-latest
$ docker pull genedna/mega:mono-ui-latest
```

2. Initialize for mono-engine and PostgreSQL
Expand All @@ -60,9 +60,9 @@ $ ./docker/init-volume.sh /tmp/data ./docker/config.toml
$ docker network create mono-network

# run postgres
$ docker run --rm -it -d --name mono-pg --network mono-network -v /tmp/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 genedna/mega:mono-pg-0.1-pre-release
$ docker run --rm -it -d --name mono-engine --network mono-network -v /tmp/data/mono/mono-data:/opt/mega -p 8000:8000 genedna/mega:mono-engine-0.1-pre-release
$ docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -p 3000:3000 genedna/mega:mono-ui-0.1-pre-release
$ docker run --rm -it -d --name mono-pg --network mono-network -v /tmp/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 genedna/mega:mono-pg-latest
$ docker run --rm -it -d --name mono-engine --network mono-network -v /tmp/data/mono/mono-data:/opt/mega -p 8000:8000 genedna/mega:mono-engine-latest
$ docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -p 3000:3000 genedna/mega:mono-ui-latest
```

4. Try to upload a repository to mono-engine
Expand Down
247 changes: 8 additions & 239 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,16 @@
# cd root of the project

# build postgres image
docker buildx build -t mega:mono-pg-0.0.1-release -f ./docker/mono-pg-dockerfile .
docker buildx build -t mega:mono-pg-latest -f ./docker/mono-pg-dockerfile .
Comment thread
genedna marked this conversation as resolved.

# build backend mono engine image (default in release mode)
docker buildx build -t mega:mono-engine-0.0.1-release -f ./docker/mono-engine-dockerfile .
docker buildx build -t mega:mono-engine-latest -f ./docker/mono-engine-dockerfile .
Comment thread
genedna marked this conversation as resolved.

# build backend mono engine in debug mode
# docker buildx build -t mega:mono-engine-0.0.1-debug -f ./docker/mono-engine-dockerfile --build-arg BUILD_TYPE=debug .
# docker buildx build -t mega:mono-engine-latest-debug -f ./docker/mono-engine-dockerfile --build-arg BUILD_TYPE=debug .

# build frontend mono ui image
docker buildx build -t mega:leo-ui-0.0.1-release -f ./docker/mono-ui-dockerfile .

# build aries engine image
docker buildx build -t mega:aries-engine-0.0.1-release -f ./docker/aries-engine-dockerfile .

# build mega engine image
# docker buildx build -t mega:mega-engine-0.0.1-release -f ./docker/mega-engine-dockerfile .
```
docker buildx build -t mega:mono-ui-latest-release -f ./docker/mono-ui-dockerfile .

## Test Mono Engine

Expand All @@ -42,9 +35,9 @@ sudo ./docker/init-volume.sh /mnt/data ./docker/config.toml
docker network create mono-network

# run postgres
docker run --rm -it -d --name mono-pg --network mono-network --memory=4g -v /mnt/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mega:mono-pg-0.1-pre-release
docker run --rm -it -d --name mono-engine --network mono-network --memory=8g -v /mnt/data/mono/mono-data:/opt/mega -p 8000:8000 -p 22:9000 mega:mono-engine-0.1-pre-release
docker run --rm -it -d --name mono-ui --network mono-network --memory=1g -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=https://git.gitmega.net -p 3000:3000 mega:mono-ui-0.1-pre-release
docker run --rm -it -d --name mono-pg --network mono-network --memory=4g -v /mnt/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mega:mono-pg-latest-release
docker run --rm -it -d --name mono-engine --network mono-network --memory=8g -v /mnt/data/mono/mono-data:/opt/mega -p 8000:8000 -p 22:9000 mega:mono-engine-latest-release
docker run --rm -it -d --name mono-ui --network mono-network --memory=1g -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=https://git.gitmega.net -p 3000:3000 mega:mono-ui-latest-release
```

[3] Nginx configuration for Mono
Expand Down Expand Up @@ -140,51 +133,6 @@ server {

```

## Test Aries engine

[1] Initiate volume for aries and postgres data

```bash
# Linux or MacOS
./init-volume.sh /mnt/data ./config.toml

# Windows
# Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# .\init-volume.ps1 -baseDir "D:\" -configFile ".\config.toml"
```

[2] Start whole aries engine stack on local for testing

```bash
# create network
docker network create aries-network

# run postgres and aries engine
docker run --rm -it -d --name mono-pg --network aries-network -v /mnt/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mega:mono-pg-0.1-pre-release
docker run --rm -it -d --name aries-engine --network aries-network -e HUB_HOST=aries-engine -v /mnt/data/mono/mono-data:/opt/mega -p 8001:8001 -p 8888:8888 mega:aries-engine-0.1-pre-release
docker run --rm -it -d --name mega-engine --network aries-network -v /mnt/data/mono/mono-data:/opt/mega -p 8000:8000 mega:mega-engine-0.1-pre-release
```

[3] Nginx configuration for Aries

```Nginx
server {
listen 443 ssl;
server_name gitxxx.org;

ssl_certificate /home/ubuntu/ssl/gitxxx-org-fullchain.pem;
ssl_certificate_key /home/ubuntu/ssl/gitxxx-org-key.pem;

location /relay/ {
proxy_pass http://127.0.0.1:8001/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```

## Certbot for SSL Certificate

[1] Install certbot
Expand All @@ -203,183 +151,4 @@ certbot certonly -d "*.gitxxx.org" -d gitxxx.org --manual --preferred-challenges

```bash
ls /etc/letsencrypt/live/gitxxx.org
```

## Deply Mono Engine with Kubernetes

[1] Create Persistent Volume and Persistent Volume Claim
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pg-data-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /tmp/data/mono/pg-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pg-data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mono-data-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /tmp/data/mono/mono-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mono-data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```

[2] Create Deployment and Service for Mono Engine and Postgres
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mono-pg
spec:
replicas: 1
selector:
matchLabels:
app: mono-pg
template:
metadata:
labels:
app: mono-pg
spec:
containers:
- name: mono-pg
image: mega:mono-pg-0.1-pre-release
ports:
- containerPort: 5432
volumeMounts:
- name: pg-data
mountPath: /var/lib/postgresql/data
volumes:
- name: pg-data
persistentVolumeClaim:
claimName: pg-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mono-pg-service
spec:
selector:
app: mono-pg
ports:
- protocol: TCP
port: 5432
targetPort: 5432
type: NodePort
```

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mono-engine
spec:
replicas: 1
selector:
matchLabels:
app: mono-engine
template:
metadata:
labels:
app: mono-engine
spec:
containers:
- name: mono-engine
image: mega:mono-engine-0.1-pre-release
ports:
- containerPort: 8000
volumeMounts:
- name: mono-data
mountPath: /opt/mega
volumes:
- name: mono-data
persistentVolumeClaim:
claimName: mono-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mono-engine-service
spec:
selector:
app: mono-engine
ports:
- protocol: TCP
port: 8000
targetPort: 8000
type: NodePort
```

[3] Create Deployment and Service for Mono UI
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mono-ui
spec:
replicas: 1
selector:
matchLabels:
app: mono-ui
template:
metadata:
labels:
app: mono-ui
spec:
containers:
- name: mono-ui
image: mega:mono-ui-0.1-pre-release
ports:
- containerPort: 3000
env:
- name: MEGA_INTERNAL_HOST
value: http://mono-engine-service:8000
- name: MEGA_HOST
value: http://localhost:8000
---
apiVersion: v1
kind: Service
metadata:
name: mono-ui-service
spec:
selector:
app: mono-ui
ports:
- protocol: TCP
port: 3000
targetPort: 3000
type: NodePort
```
```
Loading