summaryrefslogtreecommitdiff
path: root/.devcontainer
diff options
context:
space:
mode:
authorRyotaK <49341894+Ry0taK@users.noreply.github.com>2023-02-12 09:07:56 +0900
committerGitHub <noreply@github.com>2023-02-12 09:07:56 +0900
commit3c7e1ff92ef4100347ee2151c3edfc431853532b (patch)
tree0959cf408975778a459552c20bfb628750b0c0ea /.devcontainer
parentfix: 広告のexpiresAtをLocalTZ分ずらして初期化 (#9876) (diff)
downloadsharkey-3c7e1ff92ef4100347ee2151c3edfc431853532b.tar.gz
sharkey-3c7e1ff92ef4100347ee2151c3edfc431853532b.tar.bz2
sharkey-3c7e1ff92ef4100347ee2151c3edfc431853532b.zip
Dev Containerの設定を追加 (#9872)
* Dev Containerの設定を追加 * テンプレート生成時に含まれていたコメントを削除 * 起動スクリプトを分割 JSONの中にベタ書きすると長くなるので * 改行 * Dev Containerの使用方法を追記
Diffstat (limited to '.devcontainer')
-rw-r--r--.devcontainer/Dockerfile1
-rw-r--r--.devcontainer/devcontainer.json11
-rw-r--r--.devcontainer/devcontainer.yml146
-rw-r--r--.devcontainer/docker-compose.yml52
-rwxr-xr-x.devcontainer/init.sh9
5 files changed, 219 insertions, 0 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000000..b6ebcf6ad3
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1 @@
+FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000000..e92f9dff78
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,11 @@
+{
+ "name": "Misskey",
+ "dockerComposeFile": "docker-compose.yml",
+ "service": "app",
+ "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
+ "features": {
+ "ghcr.io/devcontainers-contrib/features/pnpm:2": {}
+ },
+ "forwardPorts": [3000],
+ "postCreateCommand": ".devcontainer/init.sh"
+}
diff --git a/.devcontainer/devcontainer.yml b/.devcontainer/devcontainer.yml
new file mode 100644
index 0000000000..8a363a15dc
--- /dev/null
+++ b/.devcontainer/devcontainer.yml
@@ -0,0 +1,146 @@
+#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+# Misskey configuration
+#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+# ┌─────┐
+#───┘ URL └─────────────────────────────────────────────────────
+
+# Final accessible URL seen by a user.
+url: http://127.0.0.1:3000/
+
+# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
+# URL SETTINGS AFTER THAT!
+
+# ┌───────────────────────┐
+#───┘ Port and TLS settings └───────────────────────────────────
+
+#
+# Misskey requires a reverse proxy to support HTTPS connections.
+#
+# +----- https://example.tld/ ------------+
+# +------+ |+-------------+ +----------------+|
+# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
+# +------+ |+-------------+ +----------------+|
+# +---------------------------------------+
+#
+# You need to set up a reverse proxy. (e.g. nginx)
+# An encrypted connection with HTTPS is highly recommended
+# because tokens may be transferred in GET requests.
+
+# The port that your Misskey server should listen on.
+port: 3000
+
+# ┌──────────────────────────┐
+#───┘ PostgreSQL configuration └────────────────────────────────
+
+db:
+ host: db
+ port: 5432
+
+ # Database name
+ db: misskey
+
+ # Auth
+ user: postgres
+ pass: postgres
+
+ # Whether disable Caching queries
+ #disableCache: true
+
+ # Extra Connection options
+ #extra:
+ # ssl: true
+
+# ┌─────────────────────┐
+#───┘ Redis configuration └─────────────────────────────────────
+
+redis:
+ host: redis
+ port: 6379
+ #family: 0 # 0=Both, 4=IPv4, 6=IPv6
+ #pass: example-pass
+ #prefix: example-prefix
+ #db: 1
+
+# ┌─────────────────────────────┐
+#───┘ Elasticsearch configuration └─────────────────────────────
+
+#elasticsearch:
+# host: localhost
+# port: 9200
+# ssl: false
+# user:
+# pass:
+
+# ┌───────────────┐
+#───┘ ID generation └───────────────────────────────────────────
+
+# You can select the ID generation method.
+# You don't usually need to change this setting, but you can
+# change it according to your preferences.
+
+# Available methods:
+# aid ... Short, Millisecond accuracy
+# meid ... Similar to ObjectID, Millisecond accuracy
+# ulid ... Millisecond accuracy
+# objectid ... This is left for backward compatibility
+
+# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
+# ID SETTINGS AFTER THAT!
+
+id: 'aid'
+
+# ┌─────────────────────┐
+#───┘ Other configuration └─────────────────────────────────────
+
+# Whether disable HSTS
+#disableHsts: true
+
+# Number of worker processes
+#clusterLimit: 1
+
+# Job concurrency per worker
+# deliverJobConcurrency: 128
+# inboxJobConcurrency: 16
+
+# Job rate limiter
+# deliverJobPerSec: 128
+# inboxJobPerSec: 16
+
+# Job attempts
+# deliverJobMaxAttempts: 12
+# inboxJobMaxAttempts: 8
+
+# IP address family used for outgoing request (ipv4, ipv6 or dual)
+#outgoingAddressFamily: ipv4
+
+# Proxy for HTTP/HTTPS
+#proxy: http://127.0.0.1:3128
+
+proxyBypassHosts:
+ - api.deepl.com
+ - api-free.deepl.com
+ - www.recaptcha.net
+ - hcaptcha.com
+ - challenges.cloudflare.com
+
+# Proxy for SMTP/SMTPS
+#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
+#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
+#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
+
+# Media Proxy
+#mediaProxy: https://example.com/proxy
+
+# Proxy remote files (default: false)
+#proxyRemoteFiles: true
+
+# Sign to ActivityPub GET request (default: true)
+signToActivityPubGet: true
+
+allowedPrivateNetworks: [
+ '127.0.0.1/32'
+]
+
+# Upload or download file size limits (bytes)
+#maxFileSize: 262144000
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
new file mode 100644
index 0000000000..6cb21844ac
--- /dev/null
+++ b/.devcontainer/docker-compose.yml
@@ -0,0 +1,52 @@
+version: '3.8'
+
+services:
+ app:
+ build:
+ context: .
+ dockerfile: Dockerfile
+
+ volumes:
+ - ../..:/workspaces:cached
+
+ command: sleep infinity
+
+ networks:
+ - internal_network
+ - external_network
+
+ redis:
+ restart: always
+ image: redis:7-alpine
+ networks:
+ - internal_network
+ volumes:
+ - ../redis:/data
+ healthcheck:
+ test: "redis-cli ping"
+ interval: 5s
+ retries: 20
+
+ db:
+ restart: unless-stopped
+ image: postgres:15-alpine
+ networks:
+ - internal_network
+ environment:
+ POSTGRES_USER: postgres
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_DB: misskey
+ volumes:
+ - ../db:/var/lib/postgresql/data
+ healthcheck:
+ test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
+ interval: 5s
+ retries: 20
+
+volumes:
+ postgres-data:
+
+networks:
+ internal_network:
+ internal: true
+ external_network:
diff --git a/.devcontainer/init.sh b/.devcontainer/init.sh
new file mode 100755
index 0000000000..552b229fa5
--- /dev/null
+++ b/.devcontainer/init.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -xe
+
+git submodule update --init
+pnpm install --frozen-lockfile
+cp .devcontainer/devcontainer.yml .config/default.yml
+pnpm build
+pnpm migrate