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.
Add the JitPack repository and the Obsidian core dependency to your pom.xml:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.obsidian-framework</groupId>
<artifactId>core</artifactId>
<version>latest</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.)