diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6a27dbd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.env +nats.conf \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9db1590 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.8' +services: + nats: + image: nats:latest + container_name: nats-server + ports: + - "4222:4222" + - "8222:8222" + volumes: + - ./nats.conf:/etc/nats/nats.conf + command: "-c /etc/nats/nats.conf" + + api: + build: ./src/api + depends_on: + - nats + environment: + NATS_URL: "nats://api_service:password@nats:4222" + + storage: + build: ./src/storage + depends_on: + - nats + - api + environment: + NATS_URL: "nats://storage_service:password@nats:4222" + + vault: + build: ./src/vault + depends_on: + - nats + - api + environment: + NATS_URL: "nats://vault_service:password@nats:4222" \ No newline at end of file diff --git a/nats.example.conf b/nats.example.conf new file mode 100644 index 0000000..f2ffd14 --- /dev/null +++ b/nats.example.conf @@ -0,0 +1,32 @@ +listen: 4222 + +accounts { + APP { + users [ + { + user: "api_service", + password: "api_password", + permissions: { + publish: ["files.upload", "vault.get"], + subscribe: ["vault.response"] + } + }, + { + user: "storage_service", + password: "storage_password", + permissions: { + subscribe: ["files.upload"], + publish: [] + } + }, + { + user: "vault_service", + password: "vault_password", + permissions: { + subscribe: ["vault.get"], + publish: ["vault.response"] + } + } + ] + } +} \ No newline at end of file diff --git a/src/api/Dockerfile b/src/api/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/src/api/go.mod b/src/api/go.mod new file mode 100644 index 0000000..af866e1 --- /dev/null +++ b/src/api/go.mod @@ -0,0 +1,3 @@ +module thelanc3.ru/memome/v2/api + +go 1.26.1 diff --git a/src/api/main.go b/src/api/main.go new file mode 100644 index 0000000..778f64e --- /dev/null +++ b/src/api/main.go @@ -0,0 +1 @@ +package api diff --git a/src/storage/Dockerfile b/src/storage/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/src/storage/go.mod b/src/storage/go.mod new file mode 100644 index 0000000..ed3e979 --- /dev/null +++ b/src/storage/go.mod @@ -0,0 +1,3 @@ +module thelanc3.ru/memome/v2/storage + +go 1.26.1 diff --git a/src/vault/Dockerfile b/src/vault/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/src/vault/go.mod b/src/vault/go.mod new file mode 100644 index 0000000..bc13d2f --- /dev/null +++ b/src/vault/go.mod @@ -0,0 +1,3 @@ +module thelanc3.ru/memome/v2/vault + +go 1.26.1 diff --git a/src/web/Dockerfile b/src/web/Dockerfile new file mode 100644 index 0000000..e69de29