0%

Wallabag是一款稍后阅读工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3.7'

services:
wallabag:
image: wallabag/wallabag
restart: always
labels:
- traefik.http.routers.wallabag.rule=Host(`wallabag.domain.com`)
- traefik.http.routers.wallabag.entrypoints=web
- traefik.http.routers.wallabag.service=wallabag
- traefik.http.services.wallabag.loadbalancer.server.port=80
environment:
- SYMFONY__ENV__DOMAIN_NAME=http://wallabag.domain.com
volumes:
- data:/var/www/wallabag/data
- images:/var/www/wallabag/web/assets/images

volumes:
data:
images:

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

较常用的是MD5算法,可以使用下面命令生成密钥串:

1
2
3
4
5
6
7
# 使用htpasswd命令
$ htpasswd -nbm myName myPassword
myName:$apr1$izvq8Tz5$vBk6U1mybuKXyth86sDfc/

# 使用openssl命令
$ openssl passwd -apr1 myPassword
$apr1$kRZXMOsR$qRNQdigt90XJkWbyzftwa1

Kong是全球最受欢迎的开源API网关。专为多云和混合而建,针对微服务和分布式架构进行了优化。 KongA是一款开源的Kong UI管理工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
version: '3.7'

services:
kong:
image: kong
restart: always
ports:
- 8000:8000
environment:
- KONG_DATABASE=postgres
- KONG_PG_HOST=postgres
- KONG_CASSANDRA_CONTACT_POINTS=postgres
- KONG_PROXY_ACCESS_LOG=/dev/stdout
- KONG_ADMIN_ACCESS_LOG=/dev/stdout
- KONG_PROXY_ERROR_LOG=/dev/stderr
- KONG_ADMIN_ERROR_LOG=/dev/stderr
- KONG_ADMIN_LISTEN=0.0.0.0:8001
kong-migrate:
image: kong
restart: on-failure
command: kong migrations bootstrap
environment:
- KONG_DATABASE=postgres
- KONG_PG_HOST=postgres
- KONG_CASSANDRA_CONTACT_POINTS=postgres
konga:
image: pantsel/konga
restart: always
ports:
- 1337:1337
environment:
- NODE_ENV=production
volumes:
- kongadata:/app/kongadata
postgres:
image: postgres:12
restart: always
environment:
- POSTGRES_USER=kong
- POSTGRES_DB=kong

volumes:
kongadata:

Traefɪk是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台(Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…)来自动化、动态的应用它的配置文件设置。

快速启动Traefik服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3.7'

services:
traefik:
image: traefik
restart: always
labels:
- traefik.http.routers.traefik.rule=Host(`traefik.yourdomain.com`)
- traefik.http.routers.traefik.entrypoints=web
- traefik.http.routers.traefik.service=api@internal
- traefik.http.services.traefik.loadbalancer.server.port=8080
command:
- --providers.docker
- --api.dashboard=true
- --entrypoints.web.address=:80
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Read more »

前两天重做了系统,今天开机一直卡在Logo画面,也不显示进度条。后来进BIOS,将CFG Lock修改为disabled便可以正常开机了。

MSR 0xE2:MSR全称是Model Specific Register,特定模块寄存器,属于非标准寄存器,用来控制CPU的工作环境和读取工作状态,比如电压,温度,功耗等非程序性能指标。 苹果系统的电源管理、CPU的P-stateC-state就是放在MSR寄存器里的。 大多数UEFI主板厂家,锁定了MSR寄存器的第15位为只读,也就是MSR 0xE2 Locking(BIOS 中叫CFG Lock)。 MSR 0xE2被锁定为只读后,AppleIntelCPUPowernamegement一旦去写入数据,马上就核心崩溃。 有些主板上有选项CFG Lock,其说明内容为关闭或开启MSR 0xE2,可以手动开关。

当你需要使用黑苹果时,则必须解锁MSR 0xE2,否则无法使用原生电源管理。关于如何解锁,网上有一堆资料,这里就不赘述了。

Cobra是一个Golang包,它提供了简单的接口来创建命令行程序。 Cobra还是一个应用程序,用来生成应用框架,从而开发以Cobra为基础的应用。

安装

使用下面命令安装Cobra

1
go get -u github.com/spf13/cobra

快速初始化

执行下面命令快速初始化命令:

1
cobra init myCmd --pkg-name myCmd
Read more »

  • 选用更小的基础镜像:例如alpine或基于alpine构建的镜像

  • 合并指令,减少镜像层级:将安装依赖、编译、移除源代码等指令合并成一条语句

  • 去除不需要的依赖、库:删除用不到的依赖、库等,尽量精简镜像

  • 分阶段构建镜像:分离编译镜像和部署镜像,下面是一个nodejs项目的示例:

    1
    2
    3
    4
    5
    6
    7
    8
    FROM node:14-alpine as build

    ADD . /app
    RUN yarn install && yarn build

    FROM nginx:alpine

    COPY --from=build-app /app/dist /usr/share/nginx/html

大家可以在DockerHub了解更多优秀软件的Dockerfile的写法。

在python官方文档有一句话:

By default, classes are constructed using type(). The class body is executed in a new namespace and the class name is bound locally to the result of type(name, bases, namespace).

这句话的大概意思是说:在默认情况下,类都是由type构建而来。

1
2
3
4
5
6
7
A = type('A', (object,), {})

class A(object):
pass

class A(object, metaclass=type):
pass

以上三种创建类A的方式等价。

Read more »

前两天,CentOS项目宣布,CentOS8将于2021年底结束,而CentOS7将在其生命周期结束后停止维护。 于是,我又将个人VPS装回CentOS7。

下面介绍firewalld的常见用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 显示所有配置
firewall-cmd --list-all

# 临时打开443/TCP端口
firewall-cmd --zone=public --add-port=443/tcp
# 永久打开443/TCP端口
firewall-cmd --permanent --zone=public --add-port=443/tcp
# 移除443端口
firewall-cmd --zone=public --remove-port=443/tcp

# 临时添加http服务
firewall-cmd --zone=public --add-service=http
# 永久添加http服务
firewall-cmd --permanent --zone=public --add-service=http
# 移除http服务
firewall-cmd --zone=public --remove-service=http

# 在不改变状态的条件下重新加载防火墙
firewall-cmd --reload

更多用法参见:firewall-cmd