Small and beautiful blog system, designed for programmers
Solo is a small and beautiful open source blog system, designed for programmers. Solo has a very active community, which can push articles as posts to the community, and replies from the community will be linked as blog comments (for details, please visit B3log Ideas - Distributed Community Network).
This is a brand new online community experience, so that you who love recording and sharing no longer feel lonely!
Welcome to Solo Official Discussion Forum to learn more.
The current built-in skins are as follows, you can click to preview:
Welcome to here recommend good-looking skin, we will try to make it.
Solo supports "dynamic and static":
More video tutorials are being produced successively, welcome to follow me on Bilibili: Scrap Programmer D.
Local operation is mainly used for trial or static site generation, please refer to here for usage of static site generation.
(Video demo tutorial please see here)
Download and unzip the latest Solo package, enter the decompression directory and execute:
java -cp "lib/*;." org.b3log.solo.Server
java -cp "lib/*:." org.b3log.solo.Server
If you have a Java development environment, you can refer to here to build and run through the source code (Video demo tutorial please see here).
Docker deployment is a dynamic blog usage, mainly used to deploy dynamic blogs on the server.
(Video demo tutorial please see here)
docker pull b3log/solo
Create database schema manually (schema name solo
, character set use utf8mb4
, sorting rule utf8mb4_general_ci
):
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'root'@'127.0.0.1' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
Start container:
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
For simplicity, the host network mode is used to connect to MySQL on the host.
docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
--env RUNTIME_DB="H2" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="org.h2.Driver" \
--env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
Start command line arguments description:
--listen_port
: the process listen port--server_scheme
: the protocol for the final visiting, if the anti-generation service is enabled with HTTPS, it also needs to be changed to https
--server_host
: the domain name or public IP for the final visiting, do not bring port--server_port
: the port for the final visiting, use the default 80 or 443 of the browser to leave the value blankThe description of the complete startup arguments can be viewed using -h
.
By default, logs are printed to the standard output stream through log4j2, which can be viewed through docker logs solo
. If you need to override the log4j configuration, you can mount the file to achieve:
--volume ~/log4j2.xml:/opt/solo/log4j2.xml
If you want to use other skins, you can mount the directory skins (it needs to contain all the skins you want to use):
--volume ~/skins/:/opt/solo/skins/
You can refer to here to write a restart script and run it through crontab every morning to achieve automatic update.
Please refer to here, thanks to @liumapp for providing it.
upstream backend {
server localhost:8080; # Solo listen port
}
server {
listen 80;
server_name 88250.b3log.org; # blog domain
access_log off;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}
Be sure to configure:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
Otherwise, "Latke configuration error" or abnormal style may appear on the access page; the function of counting online visitors will be abnormal.
Solo uses the Mulan Permissive Software License,Version 2 open source license.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。