账号是:sofiaboutella 密码是:Hy.123...
Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。

下面使用docker进行部署,我个人非常的喜欢的使用docker,你看使用其他的容器。比如ctr,podman。
配置docker的加速地址
如果可以上外网,有科学上网的方法那么可以跳过这一步。
[root@Server ~]# cat /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
},
"registry-mirrors": [
"https://docker.sunzishaokao.com",
"https://docker.1panel.live",
"https://docker.kejilion.pro",
"https://docker-registry.nmqu.com"
]
}
[root@Server ~]#重启docker 要demon一下
[root@Server ~]# systemctl daemon-reload
[root@Server ~]# systemctl restart docker.service
[root@Server ~]#下载MySQL:8.0镜像和solo博客镜像
[root@Server ~]# docker pull b3log/solo
Using default tag: latest
latest: Pulling from b3log/solo
Digest: sha256:f8f748b9d53ab144dc72703471a6a01bb2c74735d54170de3481f209373c400f
Status: Image is up to date for b3log/solo:latest
docker.io/b3log/solo:latest
[root@Server ~]#
[root@Mydb ~]# docker pull mysql:8.0
8.0: Pulling from library/mysql
139627f60883: Pull complete
caa784df8611: Pull complete
fe997c72f3e9: Pull complete
4f7cfd23b111: Pull complete
38fe0e0986de: Pull complete
09b552d72653: Pull complete
a0db31010df3: Pull complete
b723faee7585: Pull complete
c689d1836928: Pull complete
bb5107df7baa: Pull complete
62f1cc0a64ca: Pull complete
5ea08437b3cf: Download complete
cc9a862b4c10: Download complete
Digest: sha256:d0304ed9fdb64a3f6c7ad11a5fb4f13abfc10e6dfa3f288d652e7320c34df7f9
Status: Downloaded newer image for mysql:8.0
docker.io/library/mysql:8.0创建数据库,创建数据库的账号和密码并进行授权,进行数据库备份,进行一些优化。
[root@Mydb ~]# mkdir -p /opt/mysql/{conf,data,logs}
[root@Mydb ~]# chmod -R 777 /opt/mysql
########################################################################################################
[root@Mydb ~]# cat /opt/mysql/conf/my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=1000
innodb_buffer_pool_size = 10G
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_flush_log_at_trx_commit = 1 # 事务安全优先(金融场景)
innodb_flush_method = O_DIRECT
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_file_per_table = ON
innodb_max_dirty_pages_pct = 75 # 减少突发刷盘
# 连接与安全
max_connections = 1500
wait_timeout = 3600
interactive_timeout = 3600
max_user_connections = 200
skip-name-resolve = ON
# 禁用符号链接,避免安全风险
symbolic-links = 0
########################################################################################################
[root@Mydb ~]# docker run -d \
--name mysql \
--restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=Root.000 \
-v /opt/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/logs:/var/log/mysql \
mysql:8.0
2190f189cc458572f9f5e0594ae2c70c3a30d68d041e1e33db645199c13b884c检查和验证一下,进去数据库的内部查看。
[root@Mydb ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9bbee3c38d86 mysql:8.0 "docker-entrypoint.s…" 16 seconds ago Up 15 seconds 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql
[root@Mydb ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9bbee3c38d86 mysql:8.0 "docker-entrypoint.s…" 17 seconds ago Up 16 seconds 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql
########################################################################################################
[root@Mydb ~]# docker exec -it mysql bash
bash-5.1#
bash-5.1#
bash-5.1#
bash-5.1# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.46 MySQL Community Server - GPL
Copyright (c) 2000, 2026, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
########################################################################################################
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
########################################################################################################
mysql> CREATE DATABASE Blogs DEFAULT charset "utf8";
Query OK, 1 row affected, 1 warning (0.00 sec)
########################################################################################################
mysql> CREATE USER 'Blogs'@'%' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.01 sec)
########################################################################################################
mysql> GRANT ALL ON Blogs.* TO 'Blogs'@'%';
Query OK, 0 rows affected (0.00 sec)
########################################################################################################
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.00 sec)
########################################################################################################
mysql> SELECT * FROM user LIMIT 1\G;
*************************** 1. row ***************************
Host: %
User: Blogs
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher: 0x
x509_issuer: 0x
x509_subject: 0x
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: caching_sha2_password
authentication_string: $A$005$F3=I<P
TGNVP,|t(omfV/0c.A9N1PdOawPw1q9k2LPHbGaBPBI5vEFowOb4
password_expired: N
password_last_changed: 2026-05-03 02:59:08
password_lifetime: NULL
account_locked: N
Create_role_priv: N
Drop_role_priv: N
Password_reuse_history: NULL
Password_reuse_time: NULL
Password_require_current: NULL
User_attributes: NULL
1 row in set (0.00 sec)
ERROR:
No query specified启动solo博客容器,一条命令就可以搞定。如果是手动通过源码去进行创建和部署的话实在是太慢了。
docker run --detach --name solo -p 8080:8080 --env RUNTIME_DB="MYSQL" --env JDBC_USERNAME="Blogs" --env JDBC_PASSWORD="000000" --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" --env JDBC_URL="jdbc:mysql://172.126.9.42:3306/Blogs?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" b3log/solo --listen_port=8080 --server_scheme=http --server_host=172.126.9.41
########################################################################################################
[root@Server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fab4eb397cd3 b3log/solo "java -cp lib/*:. or…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp solo
e372356ddc7b nginx:latest "/docker-entrypoint.…" 22 hours ago Up 18 hours 0.0.0.0:81->80/tcp, [::]:81->80/tcp nginx-webfile
########################################################################################################
#查看看一下MySQL数据库有没有同步过来
mysql> USE Blogs;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SHOW TABLES;
+-----------------------------+
| Tables_in_Blogs |
+-----------------------------+
| b3_solo_archivedate |
| b3_solo_archivedate_article |
| b3_solo_article |
| b3_solo_category |
| b3_solo_category_tag |
| b3_solo_link |
| b3_solo_option |
| b3_solo_page |
| b3_solo_plugin |
| b3_solo_tag |
| b3_solo_tag_article |
| b3_solo_user |
+-----------------------------+
12 rows in set (0.00 sec)输入自己的服务器的IP地址或者域名加8080端口,进行登陆注册
可以使用微信,QQ,中国大陆手机号
接下来就可以开始使用solo博客去写自己的技术文档了

评论区