使用 docker 快速搭建一套笔记和博客系统

系统预览

笔记卡片基本理念
笔记卡片 , 快速笔记
1317

实现功能

  • ctrl+v上传图片
  • 自动保存
  • API添加笔记

预备知识

什么是docker compose
docker , 快速笔记
1514

docker 快速搭建typecho博客
快速笔记
1180

两步即可搭建

  1. 快速搭建博客系统,电脑中必须有 docker ,然后在一个文件夹中放入下面的两个文件
  2. 直接 docker compose up 启动即可

创建 .env 文件

# MySQL 配置
MYSQL_USER=typecho
MYSQL_ROOT_PASSWORD=123456   # 数据库root用户密码
MYSQL_PASSWORD=123456 # 数据库typecho用户密码

# Typecho 配置
TYPECHO_SITE_URL=http://localhost:89 # 访问这个网址即可打开博客系统
TYPECHO_PORT=89
TYPECHO_USER_NAME=admin  # 登录博客的用户名
TYPECHO_USER_PASSWORD=adminpassword # 登录博客的用户密码
TYPECHO_USER_MAIL=admin@example.com # 你的邮箱

TOKEN=your-token # typecho-api的token,使用笔记系统需要设置


NOTE_PORT=88 # 笔记系统的端口

创建 docker-compose.yml 文件

version: '3.7'

services:
  mysql:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: typecho
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10
    volumes:
      - mysql_data:/var/lib/mysql

  typecho:
    image: joyqi/typecho:nightly-php7.4-apache # -apache
    restart: unless-stopped
    environment:
      - TYPECHO_SITE_URL=${TYPECHO_SITE_URL}
      - MAX_POST_BODY=50M
      - TYPECHO_INSTALL=1
      - TYPECHO_DB_HOST=mysql
      - TYPECHO_DB_USER=${MYSQL_USER}
      - TYPECHO_DB_PASSWORD=${MYSQL_PASSWORD}
      - TYPECHO_DB_DATABASE=typecho
      - TYPECHO_USER_NAME=${TYPECHO_USER_NAME}
      - TYPECHO_USER_PASSWORD=${TYPECHO_USER_PASSWORD}
      - TYPECHO_USER_MAIL=${TYPECHO_USER_MAIL}
    ports:
      - "${TYPECHO_PORT}:80"
    volumes:
      - typecho_data:/app/usr
    depends_on:
      mysql:
        condition: service_healthy

  typecho-api:
    image: glwhappen/typecho-api
    restart: unless-stopped
    volumes:
      - typecho_data:/app/typecho_data
    environment:
      DB_USERNAME: ${MYSQL_USER}
      DB_PASSWORD: ${MYSQL_PASSWORD}
      POST_URL: post/{slug}
      DB_HOST: mysql
      DB_PORT: 3306
      DB_NAME: ${MYSQL_USER}
      API_TOKEN: ${TOKEN}
    # ports:
    #   - "13082:5000"

  note-card:
    image: glwhappen/note-card
    restart: unless-stopped
    ports:
      - "${NOTE_PORT}:80"
volumes:
  mysql_data:
  typecho_data:

升级

在docker compose 所在的文件夹,直接执行下面所有的命令即可更新笔记系统

docker compose stop typecho-api
docker compose stop note-card
docker-compose rm -f typecho-api
docker-compose rm -f note-card
docker pull glwhappen/typecho-api
docker pull glwhappen/note-card
docker-compose up -d

备份

可以看下面的文章,来自动备份所有的容器数据

自动备份运行状态中的docker容器卷
默认分类
893

问题解决

访问博客出现安装页面

访问 http://localhost:89 即可看到博客

第一次需要安装:
数据库地址填:mysql
数据库用户名:typecho
数据库密码:123456
数据库名:typecho
然后点击确认开始安装

数据库安装的时候对应的配置:

如果提示数据库存在,直接使用之前的就行

访问 http://localhost:12081 即可看到笔记系统,需要在设置里面设置一下token,需要和上面yml中的API_TOKEN对应

设置完毕以后直接刷新网页即可