惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
The Cloudflare Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
WordPress大学
WordPress大学
Jina AI
Jina AI
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
V
Vulnerabilities – Threatpost
博客园 - 司徒正美
L
Lohrmann on Cybersecurity
P
Privacy International News Feed
S
SegmentFault 最新的问题
C
Cisco Blogs
V
V2EX
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
I
Intezer
人人都是产品经理
人人都是产品经理
博客园_首页
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
Security Latest
Security Latest
V
Visual Studio Blog
S
Schneier on Security
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
腾讯CDC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - Franky
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
Kaspersky official blog
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
量子位
S
Securelist
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tenable Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
T
Troy Hunt's Blog

eallion's Blog

春假清明自驾游 Ubuntu 25.10 安装和配置 秋假 彩礼 2025 博客变化 预制菜 联邦礼仪之一 重拾写博客的乐趣 少儿 TED - 时间管理大师 n8n 之同步博客到 Mastodon n8n 之备份 Mastodon 嘟文 如何备份 Mastodon Docker 部署 Mastodon NAS 折腾记 Windows 11 安装软件 博客排版 - 挤压中文标点符号 Hugo 博客集成 Mastodon 独立博客自省问卷 15 题 Chrome 插件更新:网址净化器 在 Hugo 中使用 Shiki 炒菜万能公式 uBlacklist 订阅合集 读《中文互联网正在加速崩塌》 CSS 和 JS 实现博客热力图 受灾小记 那,他吃什么?! Mastodon 同步到 Memos Hugo 外部链接跳转提示页面 联邦宇宙及 Mastodon 简介 2024 博客变化 部署动态生成 OG Image 的 API 再看《星际穿越》 实感 自部署 GitHub 风格的 Reactions 点赞功能 图床 CDN CNAME 接入 Cloudflare SaaS 实现分流 利用 GitHub Actions 同步对象存储 留给孩子一个完整的母亲 博客 AI 摘要及优化 豆瓣同步到 Notion 和 Neodb NeoDB API 创建观影页面 Artalk 无评论随机显示诗词 孙燕姿关于AI孙燕姿的回复 Windows 安装 Rime 小狼毫五笔拼音输入法 Umami Docker 部署及优化 去有风的地方 非 24 小时睡眠觉醒障碍 Memos API 获取总条数 Memos API 公告样式滚动效果 Memos API 调用渲染页面 Memos 手动导入数据 Memos 简介 凉城利川·避暑旅居胜地(附 CCTV 报道) 珊瑚鱼 读《中文大约的确已经死了》 再说评论 且试天下 记一次博客被攻击 Hugo .GitInfo 的替代方案 Twikoo 集成 Slimbox2 灯箱插件 童心皆可爱 减肥小结 白粽肉粽及端午快乐安康 劳动合同解除 (终止) 及赔偿一览表 启用 Waline 静态博客评论系统的选择 好好说话 KMS Windows 激活服务器 Ubuntu 20.10 优化 关于 Ubuntu Ubuntu ZFS 原生全盘加密 Ubuntu ZFS 加密 Home 目录 爱丽丝梦游仙境症 偶发 月半 Ubuntu 20.04.1 配置 LNMP 本地环境备忘 佛性写博 Ubuntu 20.04 优化 免费领取咪咕版 Kindle Typecho 迁移到 Hugo 博客迁移到 Hugo GitHub Actions 自动部署 Hexo 脚本 Gridea Hexo Hugo 等 git push 同步到多个仓库 Ubuntu 19.10 优化 Typecho 中英文之间自动加上空格 Ubuntu 配置 EverVim Ubuntu 配置 Guake Ubuntu 配置 Oh-My-Zsh 阿里云镜像改版 备份工具 Duplicati Ubuntu Server snap 安装 Nextcloud Ubuntu Server 安装 Mosh 算命 言论自由 无意义的个性化 「我谈的话题没什么敏感的」 博客换回默认主题 typecho1.2 (18.10.23) 新窗口打开链接 一言 APP 添加 “今日诗词” 官方源 api 让 Firefox 只在新标签页 newtab 显示书签栏 爱子七不责 改革开放 40 年 大民大国 40 年 40 本书
Gitea 安装备忘
Charles Chin · 2021-07-30 · via eallion's Blog

DEMO: https://git.eallion.com/

Gitea 有多种安装方式,本文是介绍 Docker 安装 Gitea 时的一些关键信息备忘笔记。
Gitea 采用 Go 开发,对系统资源的需求不高,甚至在树莓派上都可以运行。
我个人也在配置极低的软路由上使用过一段时间。

计划自建 Gitea 时,默认您具有一定的DockerNginxMysql基础。

Request:

  • Docker
  • Docker compose
  • Nginx
  • Mysql(非必需)
  • 域名(非必需)

# Docker 安装 Gitea

官方文档: https://docs.gitea.io/zh-cn/install-with-docker/

镜像名: gitea/gitea:latest
个人使用的数据库是宿主机的 Mysql,所以没有拉取db镜像。
docker-compose.yml 内容:

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.14.5
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
#     - DB_TYPE=mysql
#     - DB_HOST=db:3306
#     - DB_NAME=gitea
#     - DB_USER=gitea
#     - DB_PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - /data:/var/www/gitea/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
     ports:
       - "3000:3000"
       - "22222:22"
#    depends_on:
#      - db
#
#  db:
#    image: mysql:8
#    restart: always
#    environment:
#      - MYSQL_ROOT_PASSWORD=gitea
#      - MYSQL_USER=gitea
#      - MYSQL_PASSWORD=gitea
#      - MYSQL_DATABASE=gitea
#    networks:
#      - gitea
#    volumes:
#      - ./mysql:/var/lib/mysql

数据持久化:

volumes:
      - /data:/var/www/gitea/test

需要把 Gitea 文件持久化存储在本地,不然 Docker 重启,就会丢失数据。
本实例数据映射到宿主机目录:/var/www/gitea/test

更新:更新一个宝塔面板添加 Gitea 容器的截图:
Gitea Docker
题外话:个人不建议在生产环境使用任何面板包括宝塔面板。

# Nginx 反代

如果需要域名访问 Gitea,可选 Nginx 绑定域名。
绑定过程就省略了。
docker-compose.yml 里映射的端口为3000

所以需要利用 Nginx 反代实现域名访问 Gitea,不然需要添加端口号才能访问,如:https://git.eallion.com:3000,这样的带有端口号的 URL 不美观。
反代配置:

官方文档: https://docs.gitea.io/zh-cn/reverse-proxies/

server
{
    listen 80;
    listen 443 ssl http2;
    server_name git.eallion.com;
    
# ......
# 其他配置
# ......

# 反代 Gitea 配置
location /
{
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache
    add_header Cache-Control no-cache;
}

# ......

}

# 数据库

如果是个人使用,预计 Gitea 的使用量会很小的话,可以使用 Sqlite3 数据库。

我这台 VPS 宿主机有 Mysql 环境,所以我的docker-compose.yml 没有拉取db镜像,而是直接使用了宿主机的 Mysql。(实际上使用 Docker compose 拉取数据库会更简单。)

但是 Docker 的默认网络设置,访问 localhost 并不能访问到宿主机的 Mysql,所以需要在宿主机的 Mysql 里面授权 Gitea 的 IP 访问。
查看 Gitea 容器的 ID:(多余的步骤)

docker ps --format "table {{.ID}}\t{{.Names}}"

显示结果:

CONTAINER ID   IMAGE
7f888888884e   gitea/gitea:latest

查看 Gitea 容器的 IP:(假设容器 ID 为:7f888888884e

docker exec -it 7f888888884e /bin/sh

进入容器后:

显示结果:

eth0      Link encap:Ethernet  HWaddr RA:ND:OM:MA:CA:DD
          inet addr:172.17.0.3  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1244 (1.2 KiB)  TX bytes:718 (718.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

记录下inet addr显示的 IP,如:172.17.0.3
在宿主机终端设置:

mysql>GRANT ALL PRIVILEGES ON showx.* TO 'showx'@'172.17.0.3' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql>flush privileges;

如果 Gitea 容器的 IP 变动,需要重新授权新 IP。

更新:数据库管理面板中,数据库可能也需要授权一下 Docker 的 IP。
Gitea Mysql

# 安装 Gitea

完成上面这些步骤后,在浏览器中输入绑定的域名,如: https://git.eallion.com按提示安装即可。如果是本例的架构方式,在填写数据库信息的时候,Mysql host 不要填写localhost,而要填写ifconfig显示的 IP,如本例的:172.17.0.1

安装预览: