Compare commits
27 Commits
6d3b2350cd
...
main
Author | SHA1 | Date | |
---|---|---|---|
a85cd7e1a2 | |||
e8324f261f | |||
659e4e9b4a | |||
e5230066c1 | |||
9dc83f4072 | |||
b36b9bf5a0 | |||
d74db62bc2 | |||
512b821232 | |||
59020ca444 | |||
67aceb134b | |||
9e227e7254 | |||
7f58486a01 | |||
c21f86a69f | |||
1d2d7f96cd | |||
b477d12b38 | |||
1ded7684cc | |||
574987ff28 | |||
b18d4ca440 | |||
7ca3ca34d1 | |||
45edd344b8 | |||
3c24395d57 | |||
cc77163ce5 | |||
5ebca4b835 | |||
17ddcf4373 | |||
173c41e40c | |||
1424c21afc | |||
2fed03f7fb |
11
docker-images/Dockerfile.dev-gcc-centos6
Normal file
11
docker-images/Dockerfile.dev-gcc-centos6
Normal file
@ -0,0 +1,11 @@
|
||||
## centos6 image to use for building hawk
|
||||
|
||||
FROM docker.io/centos:6
|
||||
|
||||
COPY vault-centos6.repo /etc/yum.repos.d/CentOS-Base.repo
|
||||
|
||||
RUN groupadd -g 1000 rockstar && useradd -u 1000 -g 1000 -m rockstar && groupmems -g wheel -a rockstar
|
||||
|
||||
RUN ulimit -n 1024 && yum -y install mysql-devel libffi-devel rpm-build gcc gcc-c++ sudo readline-devel ncurses-devel
|
||||
|
||||
RUN echo -e '%wheel ALL=(ALL) NOPASSWD: ALL\nrockstar ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/99-wheel
|
6
docker-images/Dockerfile.dev-gcc-rocky9
Normal file
6
docker-images/Dockerfile.dev-gcc-rocky9
Normal file
@ -0,0 +1,6 @@
|
||||
## rocky linux 9 image to use for building hawk
|
||||
## corosynclib-devel for antcmx
|
||||
|
||||
FROM docker.io/rockylinux:9
|
||||
RUN ulimit -n 1024 && dnf -y install --enablerepo=devel mysql-devel libffi-devel rpm-build systemd-rpm-macros gcc gcc-c++
|
||||
RUN ulimit -n 1024 && dnf -y install --enablerepo=highavailability corosynclib-devel
|
5
docker-images/Dockerfile.dev-gm2-fedora38
Normal file
5
docker-images/Dockerfile.dev-gm2-fedora38
Normal file
@ -0,0 +1,5 @@
|
||||
FROM fedora:38
|
||||
|
||||
|
||||
RUN ulimit -n 1024 && dnf -y install make gcc-gm2 libgm2-static glibc-static libstdc++-static
|
||||
##RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
5
docker-images/Dockerfile.dev-go-centos7
Normal file
5
docker-images/Dockerfile.dev-go-centos7
Normal file
@ -0,0 +1,5 @@
|
||||
FROM centos:centos7.9.2009
|
||||
|
||||
|
||||
RUN ulimit -n 1024 && yum -y install wget curl make gcc rpm-build git libpcap-devel && cd /opt && wget https://go.dev/dl/go1.20.6.linux-amd64.tar.gz && tar -zxvf go1.20.6.linux-amd64.tar.gz && rm -f go1.20.6.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
4
docker-images/Dockerfile.dev-go-rocky9
Normal file
4
docker-images/Dockerfile.dev-go-rocky9
Normal file
@ -0,0 +1,4 @@
|
||||
## rocky linux 9 image to use for building hawk
|
||||
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install --enablerepo=devel golang git
|
3
docker-images/Dockerfile.dev-go120-rocky9
Normal file
3
docker-images/Dockerfile.dev-go120-rocky9
Normal file
@ -0,0 +1,3 @@
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install wget git && wget https://go.dev/dl/go1.20.6.linux-amd64.tar.gz && tar -C /opt -zxvf go1.20.6.linux-amd64.tar.gz && rm -f go1.20.6.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
3
docker-images/Dockerfile.dev-go122-rocky9
Normal file
3
docker-images/Dockerfile.dev-go122-rocky9
Normal file
@ -0,0 +1,3 @@
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install wget git && wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz && tar -C /opt -zxvf go1.22.4.linux-amd64.tar.gz && rm -f go1.22.4.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
5
docker-images/Dockerfile.dev-go123-centos7
Normal file
5
docker-images/Dockerfile.dev-go123-centos7
Normal file
@ -0,0 +1,5 @@
|
||||
FROM hyunghwan/dev:go1.20.6.centos7
|
||||
|
||||
|
||||
RUN ulimit -n 1024 && cd /opt && rm -rf go && wget https://go.dev/dl/go1.23.1.linux-amd64.tar.gz && tar -zxvf go1.23.1.linux-amd64.tar.gz && rm -f go1.23.1.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
3
docker-images/Dockerfile.dev-go123-rocky9
Normal file
3
docker-images/Dockerfile.dev-go123-rocky9
Normal file
@ -0,0 +1,3 @@
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install wget git && wget https://go.dev/dl/go1.23.1.linux-amd64.tar.gz && tar -C /opt -zxvf go1.23.1.linux-amd64.tar.gz && rm -f go1.23.1.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
3
docker-images/Dockerfile.dev-go124-rocky9
Normal file
3
docker-images/Dockerfile.dev-go124-rocky9
Normal file
@ -0,0 +1,3 @@
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install wget git && wget https://go.dev/dl/go1.24.5.linux-amd64.tar.gz && tar -C /opt -zxvf go1.24.5.linux-amd64.tar.gz && rm -f go1.24.5.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
3
docker-images/Dockerfile.dev-go125-rocky9
Normal file
3
docker-images/Dockerfile.dev-go125-rocky9
Normal file
@ -0,0 +1,3 @@
|
||||
FROM docker.io/hyunghwan/dev:gcc.rocky9
|
||||
RUN ulimit -n 1024 && dnf -y install wget git && wget https://go.dev/dl/go1.25.0.linux-amd64.tar.gz && tar -C /opt -zxvf go1.25.0.linux-amd64.tar.gz && rm -f go1.25.0.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
@ -1,5 +0,0 @@
|
||||
FROM centos:centos7.9.2009
|
||||
|
||||
|
||||
RUN ulimit -n 1024 && yum -y install wget make gcc && cd /opt && wget https://go.dev/dl/go1.20.6.linux-amd64.tar.gz && tar -zxvf go1.20.6.linux-amd64.tar.gz && rm -f go1.20.6.linux-amd64.tar.gz
|
||||
RUN echo 'PATH=$PATH:/opt/go/bin' > /etc/profile.d/go.sh
|
@ -1,8 +1,77 @@
|
||||
go-centos7:
|
||||
docker build -t go:centos7 -f Dockerfile.$@ .
|
||||
build: dev-go-centos7
|
||||
|
||||
publish-go-centos7:
|
||||
docker tag go:centos7 docker.io/hyunghwan/go:centos7
|
||||
docker push docker.io/hyunghwan/go:centos7
|
||||
publish: publish-dev-go-centos7
|
||||
|
||||
dev-go-centos7:
|
||||
docker build -t dev:go1.20.6.centos7 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go-centos7:
|
||||
docker tag dev:go1.20.6.centos7 docker.io/hyunghwan/dev:go1.20.6.centos7
|
||||
docker push docker.io/hyunghwan/dev:go1.20.6.centos7
|
||||
|
||||
dev-go-centos7-big:
|
||||
docker build -t dev:go1.20.6.centos7.big -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go-centos7-big:
|
||||
docker tag dev:go1.20.6.centos7.big docker.io/hyunghwan/dev:go1.20.6.centos7.big
|
||||
docker push docker.io/hyunghwan/dev:go1.20.6.centos7.big
|
||||
|
||||
dev-gm2-fedora38:
|
||||
docker build -t dev:gm2.fedora38 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-gm2-fedora38:
|
||||
docker tag dev:gm2.fedora38 docker.io/hyunghwan/dev:gm2.fedora38
|
||||
docker push docker.io/hyunghwan/dev:gm2.fedora38
|
||||
|
||||
dev-gcc-rocky9:
|
||||
docker build -t dev:gcc.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-gcc-rocky9:
|
||||
docker tag dev:gcc.rocky9 docker.io/hyunghwan/dev:gcc.rocky9
|
||||
docker push docker.io/hyunghwan/dev:gcc.rocky9
|
||||
|
||||
dev-go-rocky9:
|
||||
docker build -t dev:go.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go-rocky9:
|
||||
docker tag dev:go.rocky9 docker.io/hyunghwan/dev:go.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go.rocky9
|
||||
|
||||
dev-go120-rocky9:
|
||||
docker build -t dev:go1.20.6.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go120-rocky9:
|
||||
docker tag dev:go1.20.6.rocky9 docker.io/hyunghwan/dev:go1.20.6.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go1.20.6.rocky9
|
||||
|
||||
dev-go122-rocky9:
|
||||
docker build -t dev:go1.22.0.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go122-rocky9:
|
||||
docker tag dev:go1.22.0.rocky9 docker.io/hyunghwan/dev:go1.22.0.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go1.22.0.rocky9
|
||||
|
||||
dev-go123-rocky9:
|
||||
docker build -t dev:go1.23.1.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go123-rocky9:
|
||||
docker tag dev:go1.23.1.rocky9 docker.io/hyunghwan/dev:go1.23.1.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go1.23.1.rocky9
|
||||
|
||||
dev-go124-rocky9:
|
||||
docker build -t dev:go1.24.5.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go124-rocky9:
|
||||
docker tag dev:go1.24.5.rocky9 docker.io/hyunghwan/dev:go1.24.5.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go1.24.5.rocky9
|
||||
|
||||
dev-go125-rocky9:
|
||||
docker build -t dev:go1.25.0.rocky9 -f Dockerfile.$@ .
|
||||
|
||||
publish-dev-go125-rocky9:
|
||||
docker tag dev:go1.25.0.rocky9 docker.io/hyunghwan/dev:go1.25.0.rocky9
|
||||
docker push docker.io/hyunghwan/dev:go1.25.0.rocky9
|
||||
|
||||
dev-gcc-centos6:
|
||||
docker build -t dev:gcc.centos6 -f Dockerfile.$@ .
|
||||
|
||||
|
19
docker-images/vault-centos6.repo
Normal file
19
docker-images/vault-centos6.repo
Normal file
@ -0,0 +1,19 @@
|
||||
[base]
|
||||
name=CentOS-$releasever - Base
|
||||
baseurl=http://vault.centos.org/$releasever.10/os/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
||||
|
||||
#released updates
|
||||
[updates]
|
||||
name=CentOS-$releasever - Updates
|
||||
baseurl=http://vault.centos.org/$releasever.10/updates/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
||||
|
||||
#additional packages that may be useful
|
||||
[extras]
|
||||
name=CentOS-$releasever - Extras
|
||||
baseurl=http://vault.centos.org/$releasever.10/extras/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
@ -11,7 +11,7 @@ networks:
|
||||
|
||||
services:
|
||||
gitea-service:
|
||||
image: gitea/gitea:1.20.1
|
||||
image: gitea/gitea:1.20.4
|
||||
hostname: gitea-service-host
|
||||
tty: true
|
||||
environment:
|
||||
|
309
docker-stack/omv-svc01.yml
Normal file
309
docker-stack/omv-svc01.yml
Normal file
@ -0,0 +1,309 @@
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
traefik-data-volume:
|
||||
web-data-volume:
|
||||
gitea-data-volume:
|
||||
codepot-data-volume:
|
||||
drone-data-volume:
|
||||
|
||||
networks:
|
||||
traefik-network:
|
||||
external: false
|
||||
|
||||
|
||||
services:
|
||||
traefik-service:
|
||||
image: docker.io/traefik:2.11.0
|
||||
hostname: traefik-service-host
|
||||
tty: true
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/run/docker.sock
|
||||
target: /var/run/docker.sock
|
||||
# if /etc/traefik direcotry exists, traefik looks for /etc/traefik/traefik.toml
|
||||
# use a different directory(/config) to avoid problems for the lack of traefik.toml
|
||||
- type: volume
|
||||
source: traefik-data-volume
|
||||
target: /config
|
||||
ports:
|
||||
#- target: 80
|
||||
# published: 80
|
||||
# protocol: tcp
|
||||
# mode: host
|
||||
- target: 443
|
||||
published: 443
|
||||
protocol: tcp
|
||||
mode: host
|
||||
- target: 3306
|
||||
published: 3306
|
||||
protocol: tcp
|
||||
mode: host
|
||||
- target: 4444
|
||||
published: 4444
|
||||
protocol: tcp
|
||||
mode: host
|
||||
networks:
|
||||
- traefik-network
|
||||
#- host-network
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
memory: 1GB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
command:
|
||||
- --log.level=INFO
|
||||
- --accesslog
|
||||
#- --accesslog.filepath=/config/logs/access.log
|
||||
- --accesslog.format=common
|
||||
|
||||
- --accesslog.fields.defaultmode=keep
|
||||
- --accesslog.fields.headers.defaultmode=keep
|
||||
- --accesslog.fields.headers.names.X-Forwarded-For=keep
|
||||
- --accesslog.fields.headers.names.RequestHost=keep
|
||||
- --api.dashboard=true
|
||||
- --api.insecure=true
|
||||
- --ping=true
|
||||
- --entrypoints.traefik.address=:4444
|
||||
- --entrypoints.web.address=:80
|
||||
- --entrypoints.websec.address=:443
|
||||
- --entrypoints.mariadb.address=:3306
|
||||
- --providers.docker=true
|
||||
- --providers.docker.swarmmode=false
|
||||
- --providers.docker.exposedbydefault=false
|
||||
- --providers.docker.network=traefik-network
|
||||
- --providers.docker.watch=true
|
||||
- --providers.file.filename=/config/traefik-cert.yml
|
||||
- --providers.file.watch=true
|
||||
- --metrics.prometheus=true
|
||||
|
||||
web-service:
|
||||
image: docker.io/hyunghwan/hio:webs
|
||||
hostname: web-service-host
|
||||
networks:
|
||||
- traefik-network
|
||||
volumes:
|
||||
- type: volume
|
||||
source: web-data-volume
|
||||
target: /data
|
||||
#read_only: true
|
||||
read_only: false
|
||||
logging:
|
||||
driver: "local"
|
||||
options:
|
||||
max-file: "5"
|
||||
max-size: "5m"
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
memory: 128MB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
##- traefik.docker.network=traefik-network
|
||||
- traefik.http.routers.web-secure.entrypoints=websec
|
||||
- traefik.http.routers.web-secure.rule=Host(`miflux.com`) || Host(`www.miflux.com`)
|
||||
- traefik.http.routers.web-secure.tls=true
|
||||
- traefik.http.services.web-service.loadbalancer.server.port=80
|
||||
##- traefik.http.services.web-service.loadbalancer.sticky.cookie=true
|
||||
##- traefik.http.services.web-service.loadbalancer.sticky.cookie.name=web-sticker
|
||||
|
||||
gitea-service:
|
||||
image: docker.io/gitea/gitea:1.21.7
|
||||
hostname: gitea-service-host
|
||||
tty: true
|
||||
environment:
|
||||
##- USER_UID=1000
|
||||
##- USER_GID=1000
|
||||
- GITEA____APP_NAME=HYUNG-HWAN
|
||||
- GITEA__server__DISABLE_SSH=true
|
||||
- GITEA__server__HTTP_PORT=3000
|
||||
- GITEA__server__ROOT_URL=https://code.miflux.com/
|
||||
- GITEA__indexer__REPO_INDEXER_ENABLED=true
|
||||
- GITEA__indexer__REPO_INDEXER_PATH=/data/gitea/indexers/repos.bleve
|
||||
##- GITEA__indexer__UPDATE_BUFFER_LEN=20
|
||||
- GITEA__indexer__MAX_FILE_SIZE=1048576
|
||||
- GITEA__indexer__REPO_INDEXER_INCLUDE=
|
||||
- GITEA__indexer__REPO_INDEXER_EXCLUDE=resources/bin/**
|
||||
- GITEA__service__DISABLE_REGISTRATION=true
|
||||
- GITEA__service__DEFAULT_ALLOW_CREATE_ORGANIZATION=true
|
||||
- GITEA__service__EMAIL_NOTIFY_TRUE=false
|
||||
- GITEA__openid__ENABLE_OPENID_SIGNIN=false
|
||||
- GITEA__openid__ENABLE_OPENID_SIGNUP=false
|
||||
- GITEA__webhook__ALLOWED_HOST_LIST=*
|
||||
- GITEA__metrics__ENABLED=true
|
||||
- GITEA__attachment__ENABLED=true
|
||||
- GITEA__attachment__ALLOWED_TYPES=*/*
|
||||
- GITEA__attachment__MAX_SIZE=100
|
||||
networks:
|
||||
- traefik-network
|
||||
volumes:
|
||||
- type: volume
|
||||
source: gitea-data-volume
|
||||
target: /data
|
||||
logging:
|
||||
driver: "local"
|
||||
options:
|
||||
max-file: "5"
|
||||
max-size: "5m"
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
memory: 1GB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.gitea-secure.entrypoints=websec
|
||||
- traefik.http.routers.gitea-secure.rule=Host(`code.miflux.com`)
|
||||
- traefik.http.routers.gitea-secure.tls=true
|
||||
##- traefik.http.routers.gitea-secure.middlewares=gitea-to-codepot-diff-to-file,gitea-to-codepot
|
||||
- traefik.http.routers.gitea-secure.middlewares=cpot-old-url-to-gitea
|
||||
#- traefik.http.routers.gitea-plain.entrypoints=web
|
||||
#- traefik.http.routers.gitea-plain.rule=Host(`code.miflux.com`)
|
||||
#- traefik.http.routers.gitea-plain.tls=false
|
||||
- traefik.http.services.gitea-service.loadbalancer.server.port=3000
|
||||
- traefik.http.services.gitea-service.loadbalancer.sticky.cookie=true
|
||||
- traefik.http.services.gitea-service.loadbalancer.sticky.cookie.name=gitea-sticker
|
||||
##- traefik.http.middlewares.gitea-to-codepot-diff-to-file.redirectregex.regex=^https://code.miflux.com/code/(fulldiff|diff)/(.*)$
|
||||
##- traefik.http.middlewares.gitea-to-codepot-diff-to-file.redirectregex.replacement=https://cpot.miflux.com/code/file/$${2}
|
||||
|
||||
##- traefik.http.middlewares.gitea-to-codepot.redirectregex.regex=^https://code.miflux.com/code/(.*)$
|
||||
##- traefik.http.middlewares.gitea-to-codepot.redirectregex.replacement=https://cpot.miflux.com/code/$${1}
|
||||
- traefik.http.middlewares.cpot-old-url-to-gitea.redirectregex.regex=^https://code.miflux.com/(code|file|issue|wiki|project|graph)/[^/]+/([^/]+)(/.+)*$
|
||||
- traefik.http.middlewares.cpot-old-url-to-gitea.redirectregex.replacement=https://code.miflux.com/hyung-hwan/$${2}
|
||||
- traefik.http.middlewares.redirect-merisia-benjaminrancourt.redirectregex.permanent=false
|
||||
|
||||
codepot-service:
|
||||
image: docker.io/hyunghwan/codepot:ubnt
|
||||
hostname: codepot-service-host
|
||||
tty: true
|
||||
command:
|
||||
- --port=80
|
||||
- --hide-index-page=yes
|
||||
- --https-redirected=yes
|
||||
- --mpm-prefork-max-workers=6
|
||||
networks:
|
||||
- traefik-network
|
||||
volumes:
|
||||
- type: volume
|
||||
source: codepot-data-volume
|
||||
target: /var/lib/codepot
|
||||
|
||||
logging:
|
||||
driver: "local"
|
||||
options:
|
||||
max-file: "5"
|
||||
max-size: "5m"
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
memory: 1GB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.codepot-secure.entrypoints=websec
|
||||
- traefik.http.routers.codepot-secure.rule=Host(`cpot.miflux.com`)
|
||||
- traefik.http.routers.codepot-secure.tls=true
|
||||
- traefik.http.routers.codepot-secure.middlewares=block-svn-access,cpot-proj-to-gitea,cpot-rest-to-gitea
|
||||
#- traefik.http.routers.codepot-plain.entrypoints=web
|
||||
#- traefik.http.routers.codepot-plain.rule=Host(`cpot.miflux.com`)
|
||||
#- traefik.http.routers.codepot-secure.tls=false
|
||||
- traefik.http.services.codepot.loadbalancer.sticky.cookie=true
|
||||
- traefik.http.services.codepot.loadbalancer.sticky.cookie.name=codepot-sticker
|
||||
- traefik.http.services.codepot.loadbalancer.server.port=80
|
||||
# - block access to svn
|
||||
- traefik.http.middlewares.block-svn-access.redirectregex.regex=^https://cpot.miflux.com/svn/(.*)$
|
||||
- traefik.http.middlewares.block-svn-access.redirectregex.replacement=https://cpot.miflux.com/svn/
|
||||
- traefik.http.middlewares.cpot-proj-to-gitea.redirectregex.regex=^https://cpot.miflux.com/[^/]+/[^/]+/([^/]+)(/.+)*$
|
||||
- traefik.http.middlewares.cpot-proj-to-gitea.redirectregex.replacement=https://code.miflux.com/hyung-hwan/$${1}
|
||||
- traefik.http.middlewares.cpot-rest-to-gitea.redirectregex.regex=^https://cpot.miflux.com/(.*)$
|
||||
- traefik.http.middlewares.cpot-rest-to-gitea.redirectregex.replacement=https://code.miflux.com/hyung-hwan/
|
||||
|
||||
drone-service:
|
||||
image: docker.io/drone/drone:2
|
||||
hostname: drone-service-host
|
||||
tty: true
|
||||
environment:
|
||||
## unable to use the internal DNS name as this URL is shown to
|
||||
## the user for oauth login.
|
||||
##- DRONE_GITEA_SERVER=http://gitea-service-host:3000
|
||||
- DRONE_GITEA_SERVER=https://code.miflux.com
|
||||
- DRONE_GITEA_CLIENT_ID=272c7bf0-b081-4e3a-a9bf-4e39231fb162
|
||||
- DRONE_GITEA_CLIENT_SECRET=gto_najtmt4bnfo37x7egy45s4g7esvhgs2b26wcfskvwn6bjajz672a
|
||||
- DRONE_RPC_SECRET=bd7c7058fd60caa00b86f7ea944c913d
|
||||
- DRONE_SERVER_HOST=ci.miflux.com
|
||||
- DRONE_SERVER_PROTO=https
|
||||
- DRONE_USER_CREATE=username:hyung-hwan,admin:true
|
||||
networks:
|
||||
#- drone-network
|
||||
- traefik-network
|
||||
volumes:
|
||||
- type: volume
|
||||
source: drone-data-volume
|
||||
target: /data
|
||||
#ports:
|
||||
# - target: 80
|
||||
# published: 80
|
||||
# protocol: tcp
|
||||
# - target: 443
|
||||
# published: 443
|
||||
# protocol: tcp
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
memory: 1GB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik-network
|
||||
- traefik.http.routers.drone-secure.entrypoints=websec
|
||||
- traefik.http.routers.drone-secure.rule=Host(`ci.miflux.com`)
|
||||
- traefik.http.routers.drone-secure.tls=true
|
||||
#- traefik.http.routers.drone-plain.entrypoints=web
|
||||
#- traefik.http.routers.drone-plain.rule=Host(`ci.miflux.com`)
|
||||
#- traefik.http.routers.drone-plain.tls=false
|
||||
- traefik.http.services.drone-service.loadbalancer.server.port=80
|
||||
- traefik.http.services.drone-service.loadbalancer.sticky.cookie=true
|
||||
- traefik.http.services.drone-service.loadbalancer.sticky.cookie.name=drone-sticker
|
||||
|
||||
drone-runner-service:
|
||||
image: docker.io/drone/drone-runner-docker:1
|
||||
hostname: drone-runner-service-host
|
||||
tty: true
|
||||
environment:
|
||||
##- DRONE_RPC_PROTO=https
|
||||
##- DRONE_RPC_HOST=ci.miflux.com
|
||||
- DRONE_RPC_PROTO=http
|
||||
- DRONE_RPC_HOST=drone-service-host
|
||||
- DRONE_RPC_PORT=:80
|
||||
- DRONE_RPC_SECRET=bd7c7058fd60caa00b86f7ea944c913d
|
||||
- DRONE_RUNNER_CAPACITY=10
|
||||
- DRONE_RUNNER_NAME=drone-runner-docker-1
|
||||
networks:
|
||||
- traefik-network
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/run/docker.sock
|
||||
target: /var/run/docker.sock
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 2
|
||||
resources:
|
||||
limits:
|
||||
memory: 1GB
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
|
@ -9,7 +9,7 @@ networks:
|
||||
|
||||
services:
|
||||
traefik-service:
|
||||
image: docker.io/traefik:2.9
|
||||
image: docker.io/traefik:2.10.1
|
||||
hostname: traefik-service-host
|
||||
tty: true
|
||||
environment:
|
||||
@ -35,6 +35,10 @@ services:
|
||||
published: 443
|
||||
protocol: tcp
|
||||
mode: host
|
||||
- target: 3306
|
||||
published: 3306
|
||||
protocol: tcp
|
||||
mode: host
|
||||
- target: 4444
|
||||
published: 4444
|
||||
protocol: tcp
|
||||
@ -58,6 +62,7 @@ services:
|
||||
##- --entrypoints.web.http.redirections.entryPoint.to=websec
|
||||
##- --entrypoints.web.http.redirections.entryPoint.scheme=https
|
||||
- --entrypoints.websec.address=:443
|
||||
- --entrypoints.mariadb.address=:3306
|
||||
- --providers.docker.swarmmode=true
|
||||
- --providers.docker.exposedbydefault=false
|
||||
- --providers.docker.network=traefik-network
|
||||
|
@ -1,4 +1,4 @@
|
||||
all:
|
||||
tar -cvf web-doc.tar index.html *.md
|
||||
curl -sv -X UNTAR --data-binary @web-doc.tar --output /dev/null https://www.miflux.com 2>&1 | grep '^[<>]'
|
||||
curl -sv -X UNTAR --data-binary @web-doc.tar --output /dev/null https://www.miflux.com/web-doc.tar 2>&1 | grep '^[<>]'
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
* [Home](/)
|
||||
* [Vitess](vitess.md "Vitess")
|
||||
|
||||
- [Home](/)
|
||||
- [GlusterFS](glusterfs.md "GlusterFS")
|
||||
- [OpenSSL](openssl.md "OpenSSL")
|
||||
- [Vitess](vitess.md "Vitess")
|
||||
- [Retro](retro-icc.md "Retro")
|
||||
|
27
web-doc/glusterfs.md
Normal file
27
web-doc/glusterfs.md
Normal file
@ -0,0 +1,27 @@
|
||||
# GlusterFS cheatsheet
|
||||
|
||||
## systemd
|
||||
- systemctl enable glusterd
|
||||
- systemctl start glusterd
|
||||
|
||||
## Peer Management
|
||||
- gluster peer probe node1 node2 node3
|
||||
- gluster peer detach node2 force
|
||||
- gluster peer detach node3 force
|
||||
- gluster peer status
|
||||
|
||||
## Volume Management
|
||||
- gluster volume info
|
||||
- gluster volume create gfs0-volume replica 3 node1:/gfs node2:/gfs node3:/gfs force
|
||||
- gluster volume start gfs0-volume
|
||||
- gluster volume set gfs0-volume auth.allow localhost
|
||||
- gluster volume set gfs0-volume performance.cache-size 256MB
|
||||
- gluster volume add-brick gfs0-volume replica 5 node4:/gfs node5:gfs
|
||||
- gluster volume remove-brick gfs0-volume replica3 node4:/gfs node5:/gfs force
|
||||
- gluster volume quota gfs0-volume enable
|
||||
- gluster volume quota gfs0-volume limit-usage / 50GB
|
||||
- gluster volume stop gfs0-volume force
|
||||
- gluster volume delete gfs0-volume
|
||||
|
||||
## /etc/fstab
|
||||
localhost:gfs0-volume /mnt/gfs-data glusterfs defaults,_netdev,noauto,x-systemd.automount 0 0
|
@ -5,16 +5,78 @@
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/themes/vue.css" />
|
||||
|
||||
<!-- <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"> -->
|
||||
<link rel="stylesheet" href="//unpkg.com/@fortawesome/fontawesome-free/css/fontawesome.css" />
|
||||
<link rel="stylesheet" href="//unpkg.com/@fortawesome/fontawesome-free/css/brands.css" />
|
||||
<link rel="stylesheet" href="//unpkg.com/@fortawesome/fontawesome-free/css/regular.css" />
|
||||
<link rel="stylesheet" href="//unpkg.com/@fortawesome/fontawesome-free/css/solid.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div data-app id='main'></div>
|
||||
|
||||
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
|
||||
<script>
|
||||
window.$docsify = {
|
||||
el: '#main',
|
||||
loadSidebar: true, // when true, _sidebar.md is required
|
||||
coverpage: false // when true, _coverpage.md is required
|
||||
coverpage: false, // when true, _coverpage.md is required
|
||||
routerMode: 'history',
|
||||
mermaidConfig: {
|
||||
querySelector: '.mermaid'
|
||||
},
|
||||
|
||||
kroki: {
|
||||
langs: [
|
||||
"actdiag",
|
||||
"blockdiag",
|
||||
"bpmn",
|
||||
"bytefield",
|
||||
"c4plantuml",
|
||||
"d2",
|
||||
"dbml",
|
||||
"ditaa",
|
||||
"erd",
|
||||
"excalidraw",
|
||||
"graphviz",
|
||||
//"mermaid",
|
||||
"nomnoml",
|
||||
"nwdiag",
|
||||
"packetdiag",
|
||||
"pikchr",
|
||||
"plantuml",
|
||||
"rackdiag",
|
||||
"seqdiag",
|
||||
"structurizr",
|
||||
"svgbob",
|
||||
"symbolator",
|
||||
"tikz",
|
||||
"vega",
|
||||
"vegalite",
|
||||
"wavedrom",
|
||||
"wireviz",
|
||||
],
|
||||
// default
|
||||
serverPath: "//kroki.io/",
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-c.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-go.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-javascript.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-typescript.min.js"></script>
|
||||
|
||||
<script src="//unpkg.com/mermaid/dist/mermaid.js"></script>
|
||||
<script src="//unpkg.com/docsify-mermaid@latest/dist/docsify-mermaid.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: true,
|
||||
securityLevel: 'loose',
|
||||
//logLevel: 0
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="//unpkg.com/docsify-kroki"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
5
web-doc/openssl.md
Normal file
5
web-doc/openssl.md
Normal file
@ -0,0 +1,5 @@
|
||||
# OpenSSL Cheatsheet
|
||||
|
||||
## Certificate Viewing
|
||||
- openssl x509 -in cert.pem -noout -text
|
||||
- openssl crl2pkcs7 -nocrl -certfile chained-cert.pem | openssl pkcs7 -print_certs -noout -text
|
20
web-doc/retro-icc.md
Normal file
20
web-doc/retro-icc.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Intel C Code Builder For DOS
|
||||
|
||||
If you have compiler installed under `C:\ICC`, set the following environment variables:
|
||||
|
||||
```
|
||||
SET CBPATH=C:\ICC
|
||||
SET PATH=C:\ICC\BIN;%PATH%
|
||||
```
|
||||
|
||||
If `icc` fails to find `C:\ICC\BIN\XMVM` and your system doesn't have the file, you can build your program with the `/xnovm` option.
|
||||
|
||||
```
|
||||
icc /xnovm hello.c
|
||||
```
|
||||
|
||||
Alternatively, you can extract the file from an existing ICC binary as shown in https://www.os2museum.com/wp/xmvm-surgery/ and place it under `C:\ICC\BIN`.
|
||||
|
||||
```
|
||||
dd if=IC32.EXE of=XMVM skip=51385 bs=1 count=9440
|
||||
```
|
@ -1 +1,158 @@
|
||||
## Vitess
|
||||
# Vitess
|
||||
|
||||
|
||||
```blockdiag
|
||||
diagram login {
|
||||
client [label = "Client"];
|
||||
|
||||
gw_sniproxy [label = "sniproxy"]
|
||||
gw_nginx [label = "nginx"]
|
||||
gw_redirect_pl [label = "redirect.pl"]
|
||||
|
||||
client -> gw_sniproxy -> gw_nginx;
|
||||
gw_nginx ->gw_redirect_pl;
|
||||
}
|
||||
```
|
||||
|
||||
```blockdiag
|
||||
diagram get-page-uuid {
|
||||
index [ label = "login/index.ant" ]
|
||||
inc-main [ label = "modules/policy/inc-main.php" ]
|
||||
sql [ label = "SELECT location.location_group_id, settings FROM ant_policies.location LEFT JOIN ant_policies.policy ON location.location_group_id = policy.location_group_id WHERE ppli =\"eth0\"" ]
|
||||
|
||||
index -> inc-main -> sql;
|
||||
}
|
||||
```
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A --- B
|
||||
B-->C[fa:fa-ban forbidden]
|
||||
B-->D(fa:fa-spinner);
|
||||
```
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
int main ()
|
||||
{
|
||||
printf ("hello, world\n");
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
```mermaid
|
||||
mindmap
|
||||
root((mindmap))
|
||||
Origins
|
||||
Long history
|
||||
::icon(fa fa-book)
|
||||
Popularisation
|
||||
British popular psychology author Tony Buzan
|
||||
Research
|
||||
On effectivness<br/>and features
|
||||
On Automatic creation
|
||||
Uses
|
||||
Creative techniques
|
||||
Strategic planning
|
||||
Argument mapping
|
||||
Tools
|
||||
Pen and paper
|
||||
Mermaid
|
||||
```
|
||||
|
||||
```c
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
// Function to add two numbers
|
||||
int add(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// Function to subtract two numbers
|
||||
int subtract(int a, int b) {
|
||||
return a - b;
|
||||
}
|
||||
|
||||
// Function that accepts a function pointer as a parameter
|
||||
int calculate(int (*operation)(int, int), int a, int b) {
|
||||
return operation(a, b);
|
||||
}
|
||||
|
||||
int main() {
|
||||
int x = 100, y = 200;
|
||||
int sum = calculate(add, x, y);
|
||||
int diff = calculate(subtract, x, y);
|
||||
printf("Sum: %d\n", sum);
|
||||
printf("Difference: %d\n", diff);
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
```bytefield
|
||||
(defattrs :bg-green {:fill "#a0ffa0"})
|
||||
(defattrs :bg-yellow {:fill "#ffffa0"})
|
||||
(defattrs :bg-pink {:fill "#ffb0a0"})
|
||||
(defattrs :bg-cyan {:fill "#a0fafa"})
|
||||
(defattrs :bg-purple {:fill "#e4b5f7"})
|
||||
|
||||
(defn draw-group-label-header
|
||||
[span label]
|
||||
(draw-box (text label [:math {:font-size 12}]) {:span span :borders #{} :height 14}))
|
||||
|
||||
(defn draw-remotedb-header
|
||||
[kind args]
|
||||
(draw-column-headers)
|
||||
(draw-group-label-header 5 "start")
|
||||
(draw-group-label-header 5 "TxID")
|
||||
(draw-group-label-header 3 "type")
|
||||
(draw-group-label-header 2 "args")
|
||||
(draw-group-label-header 1 "tags")
|
||||
(next-row 18)
|
||||
|
||||
(draw-box 0x11 :bg-green)
|
||||
(draw-box 0x872349ae [{:span 4} :bg-green])
|
||||
(draw-box 0x11 :bg-yellow)
|
||||
(draw-box (text "TxID" :math) [{:span 4} :bg-yellow])
|
||||
(draw-box 0x10 :bg-pink)
|
||||
(draw-box (hex-text kind 4 :bold) [{:span 2} :bg-pink])
|
||||
(draw-box 0x0f :bg-cyan)
|
||||
(draw-box (hex-text args 2 :bold) :bg-cyan)
|
||||
(draw-box 0x14 :bg-purple)
|
||||
|
||||
(draw-box (text "0000000c" :hex [[:plain {:font-weight "light" :font-size 16}] " (12)"]) [{:span 4} :bg-purple])
|
||||
(draw-box (hex-text 6 2 :bold) [:box-first :bg-purple])
|
||||
(doseq [val [6 6 3 6 6 6 6 3]]
|
||||
(draw-box (hex-text val 2 :bold) [:box-related :bg-purple]))
|
||||
(doseq [val [0 0]]
|
||||
(draw-box val [:box-related :bg-purple]))
|
||||
(draw-box 0 [:box-last :bg-purple]))
|
||||
|
||||
(draw-remotedb-header 0x4702 9)
|
||||
|
||||
(draw-box 0x11)
|
||||
(draw-box 0x2104 {:span 4})
|
||||
(draw-box 0x11)
|
||||
(draw-box 0 {:span 4})
|
||||
(draw-box 0x11)
|
||||
(draw-box (text "length" [:math] [:sub 1]) {:span 4})
|
||||
(draw-box 0x14)
|
||||
|
||||
(draw-box (text "length" [:math] [:sub 1]) {:span 4})
|
||||
(draw-gap "Cue and loop point bytes")
|
||||
|
||||
(draw-box nil :box-below)
|
||||
(draw-box 0x11)
|
||||
(draw-box 0x36 {:span 4})
|
||||
(draw-box 0x11)
|
||||
(draw-box (text "num" [:math] [:sub "hot"]) {:span 4})
|
||||
(draw-box 0x11)
|
||||
(draw-box (text "num" [:math] [:sub "cue"]) {:span 4})
|
||||
|
||||
(draw-box 0x11)
|
||||
(draw-box (text "length" [:math] [:sub 2]) {:span 4})
|
||||
(draw-box 0x14)
|
||||
(draw-box (text "length" [:math] [:sub 2]) {:span 4})
|
||||
(draw-gap "Unknown bytes" {:min-label-columns 6})
|
||||
(draw-bottom)
|
||||
```
|
||||
|
Reference in New Issue
Block a user