Get your first Obsidian app running in minutes.
git clone https://github.com/obsidian-framework/obsidian my-app
Base structure with User model and auth system.
git clone https://github.com/obsidian-framework/flint my-app
Includes login, register pages and dashboard out of the box.
<dependency>
<groupId>com.obsidian-java</groupId>
<artifactId>core</artifactId>
<version>{version}</version>
</dependency>
The skeleton already includes this — you only need to add it manually if you're starting from an empty project.
Make sure your pom.xml points to your Main class:
<plugin>
<groupId>com.obsidian.skeleton</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>com.yourcompany.yourapp.Main</mainClass>
</configuration>
</plugin>
The skeleton already includes this — just update the mainClass to match your package.
Create a .env file at the project root and fill in your database credentials. See the Database section for all available options.
mvn clean package exec:java
Compiles and starts the server in one step.
mvn clean package
java -jar target/app.jar
Obsidian uses a convention-over-configuration approach — one line of code starts everything.
public class Main {
public static void main(String[] args) throws Exception {
Obsidian.run(Main.class);
}
}
When you call Obsidian.run(Main.class), the framework scans the package of your Main class and all its subpackages for annotated components. No XML, no manual registration.
@GET, @POST, etc.)