A blog system built with Spring Boot 3 and Vue3.
- Java 17 or higher
- MySQL 8.0 or higher
This part includes the steps to get the backend of the project running. For the frontend, please refer to the frontend.
This project requires the following libraries that need you to install to your local Maven repository:
After cloning the repository and installing the required libraries, you can build the project using the following command:
./gradlew build
or if you want to skip the tests:
./gradlew assemble
After building the project, you should be able to find the jar file in
lamp-blog-web/build/libs
directory.
In the previous step, we primarily covered how to build the entire project, which is mainly intended for local execution. However, when running in other environments, for standardization purposes, we need a distribution package. In the following section, we will introduce how to create a distribution package.
To generate the distribution package, run the following command:
./gradlew package
This command will generate a compressed file, similar to lamp-blog-{version}-dist.tar.gz
,
under the build/dist
directory. This file includes the base JAR file, startup
scripts, and other resources.
This section provides guidance on how to build a Docker image. Before continue, ensure that Docker is installed in your build environment.
To build the Docker image, run the following command:
./gradlew buildImage
After the build process is complete, you can find the image with the name
lamp-blog:{version}
in the local Docker image list.
To start up the application, you need to provide a configuration file.
The configuration file uses the properties
format, like the following:
# Database Configuration
database.url=jdbc:mysql://localhost:3306/lamp_blog_database
database.username=root
database.password=root
# Server Configuration
server.port=5100
Before running the application, you need to make sure that the MySQL database is running and the database is created.
If you haven't created the database, you can create it using the following SQL command:
CREATE DATABASE lamp_blog_database;
After the application starts, it will automatically create the tables and indexes required by the application.
After building the project, then you can run the application using the following command:
java -jar lamp-blog.jar # Replace lamp-blog.jar with the actual jar file name
Or if you are using the distribution pack:
bin/lamp # Replace with the actual path to `lamp`
Current support command line arguments:
--config
,-c
: Specify the configuration file to use. > Default will try findlamp.conf
in the current directory and the >conf
directory under the working directory.
By default, the application will start on port 5100
. And database
related configurations must be provided in the configuration file,
or the application will fail to start.
You can use the environment variable JAVA_OPTS
to specify the
JVM options, like the following:
JAVA_OPTS="-Xmx1024m -Xms64m" bin/lamp
If you have built the Docker image, you can run the application using the following command:
Note
Before running the command, you need to prepare a configuration file named
lamp.conf
in your local directory for mount to the container and replace
the /path/to/lamp.conf
with the actual path to the configuration file.
docker run \
-d \
-it \
-p 5100:5100 \
--network host \
-v /path/to/lamp.conf:/app/lamp-blog/conf/lamp.conf \
--name lamp-blog lamp-blog:{version}
Options:
--network host
: Use the host network, or replace with your own network.-v /path/to/lamp.conf:/app/lamp-blog/conf/lamp.conf
: Mount the configuration file to the container.
Also, you can use the environment variable JAVA_OPTS
to specify the
JVM options, like the following:
docker run \
#...other options omitted
-e JAVA_OPTS="-Xmx1024m -Xms64m" \ # replace with your own JVM options
--name lamp-blog lamp-blog:{version}
- User Management
- Article Management
Expected workflow is: Fork -> Patch -> Push -> Pull Request
Copyright (C) 2023 RollW
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.