0%

20200507193511

备份原始源

1
2
3
cd /etc/apt
cp sources.list sources.list.bak
rm sources.list

更改源

1
nano sources.list

然后填写以下内容。

清华源

ubuntu 20.04(focal) 配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse

阿里源

ubuntu 20.04(focal) 配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
deb https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse

其他版本根据版本号替换即可

1
deb https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse

focal即版本号

更新

1
apt update && apt upgrade -y

20200507194302

速度比官方源快很多。

注意

ubuntu-ports是Arm64,Armhf 等平台的 Ubuntu 软件仓库

20200506000117

腾讯企业邮箱配置如下,其他邮箱同样适用。

找到配置

1
2
3
4
5
6
7
8
9
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@wudinaonao.com"
gitlab_rails['smtp_password'] = "xxxxxxxxxxxxxxxxxx"
gitlab_rails['smtp_domain'] = "wudinaonao.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

在找到配置

1
2
3
4
# gitlab 发件邮箱
gitlab_rails['gitlab_email_from'] = 'gitlab@wudinaonao.com'
# 默认标题
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'

重载gitlab配置

1
gitlab-ctl reconfigure

登录到你搭建的Gitlab发一封重置密码的邮件试试

20200506000733

成功

20200506000803

阿里云企业邮箱配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourself.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "yourself user name"
gitlab_rails['smtp_password'] = "yourself password"
gitlab_rails['smtp_domain'] = "yourself hostname"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true

###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

更多邮箱配置参见官方

https://docs.gitlab.com/omnibus/settings/smtp.html

参考链接

https://docs.gitlab.com/omnibus/settings/smtp.html

https://gitlab.com/gitlab-org/gitlab-foss/-/issues/446

用Docker搭建饥荒服务器

20200503210534

安装

1
docker pull jamesits/dst-server

20200503210917

拉取到的镜像

20200503213045

如果没有安装docker-compose建议安装,方便书写配置文件。

1
apt install docker-compose

新建一个目录用于存放数据文件

1
2
mkdir /${HOME}/dst
cd /${HOME}/dst

打开本机饥荒

点账号

20200503213529

查看我的游戏

20200503213654

选择饥荒

20200503214024

添加一个新服务器,起一个用于识别的名字

20200503214359

复制那串key

20200503214424

回到服务器

创建docker-compose.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat > docker-compose.yaml <<"EOF"
version: '3.5'
services:
dst-server:
environment:
- DST_CLUSTER_TOKEN=这里粘贴刚才复制的那串key
image: jamesits/dst-server:latest
restart: "on-failure:5"
ports:
- "10999-11000:10999-11000/udp"
- "12346-12347:12346-12347/udp"
volumes:
- ${HOME}/.klei/DoNotStarveTogether:/data
stop_grace_period: 6m
EOF

创建并运行容器

1
docker-compose up

看到这个

20200503215417

ctrl+c退出容器编辑配置文件

配置

1
2
3
cd
cd .klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1
nano cluster.ini

简单配置下,这里基本是关于游戏模式和服务器的设置。你也可以在本地新建一个房间,然后把配置文件拿过来替换掉服务器上的配置。

20200503220023

后台运行

1
2
cd
docker-compose up -d

如果你的主机提供商有安全规则的话,你需要放行这样四个端口,UDP协议。

1
2
10999-11000
12346-12347

20200503220519

开始玩

浏览游戏

20200503220813

等待搜索完服务器列表

20200503221138

过滤器输入我们刚才配置的服务器名字 NaonaoTencenCloud

20200503220848

加入

20200503222950

创建角色

20200503223240

可以愉快的玩耍了

参考链接

https://hub.docker.com/r/jamesits/dst-server

Nginx反向代理HTTPS

Nginx Server 设置

例如 转发到 https://127.0.0.1:8848

1
2
3
4
5
6
7
8
9
10
11
12
13
14
location ~/ {
# 如果代理到一个动态域名,这里需要设置解析DNS
# 不然Nginx只在启动的时候解析一次
resolver 8.8.8.8 114.114.114.114 valid=10s;
resolver_timeout 3s;
假如你要代理到 127.0.0.1:8848
set $target "127.0.0.1:8848";
# 这里之前填写成 $proxy_host 导致代理失败
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr;
proxy_ssl_certificate /xxx.crt # 证书路径;
proxy_ssl_certificate_key /xxx.key #私钥路径;
proxy_pass https://$target;
}

Docker搭建Gitlab服务器

获取 Gitlab 镜像

1
docker pull gitlab/gitlab-ce

启动容器

映射端口,配置访问方式

  • 8443 https
  • 8080 http
  • 8022 ssh

挂载3个volume到容器里,分别用于配置,持久化,日志。

阅读全文 »

用Nginx搭建自己的私有Git服务器

背景

现在Github的私有仓库已经无限制免费了,但是Geek精神总是在召唤我似乎可以自己搭建一台自己的私有Git服务器?(你甚至可以写个后台前端搭建一个自己的Github!额,貌似是Gitlab?)

说干就干!

阅读全文 »

Flask集成React前端部署

Build React 文件

  • 打包 React

    1
    npm run build
  • 得到build目录下的静态文件

20200429234258

20200429234325

设置 Flask

Flask 默认静态资源在static目录,html文件在template目录,我们设置成我们自定义的路径。

  • 例如我们的目录结构

    20200429234735

  • 我们构建好的静态文件放在/frontend/flask-mark-12306-captcha-frontend/build这个目录里

  • 我们的在 App.py (你的应用程序入口)里面设置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    from flask import Flask, render_template
    from api import mark
    from api import get
    from controller import errorHandler
    import os

    # 静态文件目录
    frontEndDir = os.path.join("frontend", "flask-mark-12306-captcha-frontend", "build")

    app = Flask(__name__, static_url_path='', static_folder=frontEndDir)
    app.register_blueprint(errorHandler)
    app.register_blueprint(mark)
    app.register_blueprint(get)

    # 渲染 index.html
    @app.route('/')
    def main():
    return render_template("index.html")

    if __name__ == '__main__':
    app.run()

  • 这样我们就设置好了。

  • 跑一下项目看一下。

  • 问题解决。

    20200429235845

Flask部署Keras模型遇到的问题

AttributeError: ‘_thread._local’ object has no attribute ‘value’

20200428200312

  • 定位到 tensorflow_backend.py 这个文件

  • 在这个位置

    1
    2
    3
    4
    5
    6
    7
    8
    @functools.wraps(func)
    def symbolic_fn_wrapper(*args, **kwargs):
    if _SYMBOLIC_SCOPE.value:
    with get_graph().as_default():
    return func(*args, **kwargs)
    else:
    return func(*args, **kwargs)
    return symbolic_fn_wrapper
  • 增加

    1
    _SYMBOLIC_SCOPE.value = True
  • 变成这样

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @functools.wraps(func)
    def symbolic_fn_wrapper(*args, **kwargs):
    _SYMBOLIC_SCOPE.value = True
    if _SYMBOLIC_SCOPE.value:
    with get_graph().as_default():
    return func(*args, **kwargs)
    else:
    return func(*args, **kwargs)
    return symbolic_fn_wrapper
  • 问题解决

20200428200702

VSCode 同步设置

Visual Studio Code 因其轻巧和插件繁多已经逐渐成为我的主力开发工具。当我准备更换电脑在笔记本上开发时候的时候,我碰到了一个棘手的问题。我得重新下载插件和设置VSCode,难道我得记下台式机上所有的设置和插件然后到笔记本上重新设置和下载?这显然不符合Geek精神!有一款现成的插件可以解决我们的问题。

阅读全文 »