{"id":23037068,"url":"https://github.com/n7ghtm4r3/nova","last_synced_at":"2026-04-10T23:04:14.916Z","repository":{"id":237010386,"uuid":"768834000","full_name":"N7ghtm4r3/Nova","owner":"N7ghtm4r3","description":"Backend for the tool to manage and improve the developments of your releases","archived":false,"fork":false,"pushed_at":"2024-10-03T18:39:22.000Z","size":1080,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T13:27:07.209Z","etag":null,"topics":["java","jetpack-compose","kotlin","kotlin-android","release","release-management","releases","releases-manager","self-hosted","spring","spring-boot","tecknobit"],"latest_commit_sha":null,"homepage":"https://n7ghtm4r3.github.io/Nova/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/N7ghtm4r3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-07T20:25:01.000Z","updated_at":"2024-10-04T08:21:14.000Z","dependencies_parsed_at":"2024-09-07T10:47:30.226Z","dependency_job_id":"37373170-e3c7-413e-858c-f1d4ff56bc84","html_url":"https://github.com/N7ghtm4r3/Nova","commit_stats":null,"previous_names":["n7ghtm4r3/nova"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/N7ghtm4r3%2FNova","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/N7ghtm4r3%2FNova/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/N7ghtm4r3%2FNova/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/N7ghtm4r3%2FNova/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/N7ghtm4r3","download_url":"https://codeload.github.com/N7ghtm4r3/Nova/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246905869,"owners_count":20852820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jetpack-compose","kotlin","kotlin-android","release","release-management","releases","releases-manager","self-hosted","spring","spring-boot","tecknobit"],"created_at":"2024-12-15T17:28:33.627Z","updated_at":"2026-04-10T23:04:14.884Z","avatar_url":"https://github.com/N7ghtm4r3.png","language":"Java","funding_links":["https://www.paypal.com/donate/?hosted_button_id=5QMN5UQH7LDT4"],"categories":[],"sub_categories":[],"readme":"# Nova\n\n**v1.0.1**\n\nThis project, based on Java and the Spring Boot framework, is an open source self-hosted tool to manage and improve the developments of your releases.\nImprove the development of your releases with **Nova**!\n\n## Customize the application\n\nTo customize and create your own version of this application you need to have the \u003ca href=\"https://github.com/N7ghtm4r3/Nova/tree/main/Nova-core\"\u003e\ncore library\u003c/a\u003e implemented in your project and published into maven local system\n\n### Clone the core library and publish to maven local\n\n- Clone the repository or download the zip file of the current version available\n\n- Open the folder file in your development environment and publish to maven local with the\n  **publishMavenPublicationToMavenLocal** gradle task, take a look \u003ca href=\"https://docs.gradle.org/current/userguide/publishing_maven.html\"\u003ehere\u003c/a\u003e\n  for a help\n\n### Implement the core library to your application\n\n- #### Gradle (Short)\n\n```gradle\nrepositories {\n  ...\n  mavenLocal()\n}\n\ndependencies {\n  implementation 'com.tecknobit.novacore:novacore:1.0.1'\n}\n```\n\n#### Gradle (Kotlin)\n\n```gradle\nrepositories {\n  ...\n  mavenLocal()\n}\n\ndependencies {\n  implementation(\"com.tecknobit.novacore:novacore:1.0.1\")\n}\n```\n\n## 🛠 Skills\n\n- Java\n- Kotlin\n\n## Architecture\n\n### Clients\n- \u003ca href=\"https://github.com/N7ghtm4r3/Nova-Clients#readme\"\u003eAndroid and Desktop\u003c/a\u003e\n  \n### Backend \n- \u003ca href=\"https://github.com/N7ghtm4r3/Nova/releases/tag/1.0.1\"\u003eBackend service \"out-of-the-box\"\u003c/a\u003e\n\n## Usages\n\n### Backend configuration\n\n\u003e [!WARNING]  \n\u003e Note: the service will run using the *HTTP* protocol as default, it is recommended to implement an *SSL* or *TLS* certificate to secure communication on your infrastructure.\n\u003e\n\u003e **Wikis**\n\u003e\n\u003e To create a self-signed certificate you can look \u003ca href=\"https://tecadmin.net/step-by-step-guide-to-creating-self-signed-ssl-certificates/\"\u003ehere\u003c/a\u003e\n\u003e\n\u003e To implement a certificate in Spring you can look \u003ca href=\"https://www.thomasvitale.com/https-spring-boot-ssl-certificate/\"\u003ehere\u003c/a\u003e\n\u003e\n\u003e If you encounter any problems with the creation of the keystore you can look \u003ca href=\"https://stackoverflow.com/questions/906402/how-to-import-an-existing-x-509-certificate-and-private-key-in-java-keystore-to\"\u003ehere\u003c/a\u003e to get more information, or\n\u003e use the following command to add the **private key** to the keystore:\n\u003e ```xml\n\u003e openssl pkcs12 -export -in your_certificate_file.crt -inkey your_private_key.key -out your_out_pkcs12_file.p12 -name your_alias_name -CAfile your_certificate_file.crt -caname root\n\u003e ```\n\n\n#### Default configuration\n\nThe default properties to launch the backend service as designed are the following:\n\n``` properties\n# The properties considered critical could alter the flow of how the backend service was designed, so we do not recommend\n# to change them\n\nspring.datasource.url=jdbc:mysql://localhost:3306/nova\nserver.port=1054\nspring.datasource.username=root\nspring.jpa.generate-ddl=true \nspring.jpa.hibernate.ddl.auto=update\nspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect\nspring.mvc.dispatch-options-request=true\nspring.servlet.multipart.max-file-size=500MB\nspring.servlet.multipart.max-request-size=500MB\n```\n\n| Property                                  | Default value                       |    Not-Critical    | Recommended to change |\n|-------------------------------------------|-------------------------------------|:------------------:|:---------------------:|\n| spring.datasource.url                     | jdbc:mysql://localhost:3306/nova    | :white_check_mark: |          :x:          | \n| server.port                               | 1054                                | :white_check_mark: |           /           |\n| spring.datasource.username                | root                                | :white_check_mark: |  :white_check_mark:   |\n| spring.jpa.generate-ddl                   | update                              |        :x:         |          :x:          |\n| spring.jpa.hibernate.ddl.auto             | auto                                |        :x:         |          :x:          |           \n| spring.jpa.properties.hibernate.dialect   | org.hibernate.dialect.MySQL8Dialect |        :x:         |          :x:          |           \n| spring.mvc.dispatch-options-request       | true                                |        :x:         |          :x:          |           \n| spring.servlet.multipart.max-file-size    | 500MB                               | :white_check_mark: |           /           |           \n| spring.servlet.multipart.max-request-size | 500MB                               | :white_check_mark: |           /           |\n\nThe **spring.datasource.username** if is not set is used the default password of the MySQL environment\n\n#### Custom configuration\n\nTo customize the properties to launch the backend service you must create a file **in the same folder where you placed\nthe server file (.jar)** and call it **\"nova.properties\"** as below:\n\n``` bash\n  folderOfWhereYouPlacedTheServerFile\n   |-- nova.properties\n   |-- nova.jar\n  ```\n\nIf your custom properties do not contain the properties of the default configuration will be used these default\nproperties instead,\nso if you need to change some default properties you have to overwrite them.\n\nTake a look to the official page of **Spring** for a high\ncustomization \u003ca href=\"https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html\"\u003e\nhere\u003c/a\u003e\n\n### Run the service\n\nTo start the **Nova** service on your own infrastructure you have to follow these steps\n\n#### Requirements\n\n- At least **Java 18 JDK** installed on your machine\n- An SQL environment installed, it is recommended to use **MySQL**\n- Before run the backend service, **for the first time only**, you need to store in the **profiles** subfolder **(created automatically by \n  the server)** the default profile pic as below:\n  ``` bash\n  folderOfWhereYouPlacedTheServerFile\n   |-- resources\n   |   |-- profiles\n   |       |-- defProfilePic.png\n   |-- nova.jar\n  ```\n  This action is required to provide the **defProfilePic** as logo or profile for the users.\n  You can take a look directly \u003ca href=\"https://github.com/N7ghtm4r3/Nova/tree/main/images\"\u003ehere\u003c/a\u003e\n  to get more information and to get the **defProfilePic** file to store in the **resources** folder\n- The SQL service running on \"localhost:3306/nova\" by default, or if has been customized, with the custom data to\n  format correctly the connection URL\n\n#### Launch the service\n\nWhen you have to start the service you will have different scenarios:\n\n- At the first launch the server will be interrupted and will be thrown the\n  **SaveData** exception to store the server secret to manage the user accesses to\n  the server, share it **only to the users that you retains allowed to access to your server**\n  ``` java\n  Exception in thread \"main\" com.tecknobit.apimanager.exceptions.SaveData: Note: is not an error, but is an alert!\n  Please you should safely save: the_server_secret_generated to correctly register a new user in the Nova system\n  ```\n- If is not the first launch the service will start directly\n- If you need to recreate the server secret you need to launch the service with the **rss** command like this:\n  ``` java\n  java -jar Nova.jar rss // this will generate a new server secret overwriting the current server secret\n  ```\n- If you need to delete the server secret, just note that when the service will be launched again will be generated a\n  new\n  server secret to work correctly, you need to launch the service with the **dss** or **dssi** command like this:\n  ``` java\n  // dss command\n  java -jar Nova.jar dss // this will delete the current server secret\n  \n   // dssi command\n  java -jar Nova.jar dssi // this will delete the current server secret and interrupts the server workflow right next\n  ```\n\n## Authors\n\n- [@N7ghtm4r3](https://www.github.com/N7ghtm4r3)\n\n## Support\n\nIf you need help using the library or encounter any problems or bugs, please contact us via the following links:\n\n- Support via \u003ca href=\"mailto:infotecknobitcompany@gmail.com\"\u003eemail\u003c/a\u003e\n- Support via \u003ca href=\"https://github.com/N7ghtm4r3/Nova/issues/new\"\u003eGitHub\u003c/a\u003e\n\nThank you for your help!\n\n## Badges\n\n[![](https://img.shields.io/badge/Google_Play-414141?style=for-the-badge\u0026logo=google-play\u0026logoColor=white)](https://play.google.com/store/apps/developer?id=Tecknobit)\n[![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/tecknobit)\n\n[![](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://www.oracle.com/java/)\n[![](https://img.shields.io/badge/Kotlin-0095D5?\u0026style=for-the-badge\u0026logo=kotlin\u0026logoColor=white)](https://kotlinlang.org/)\n\n[![](https://img.shields.io/badge/Spring_Boot-F2F4F9?style=for-the-badge\u0026logo=spring-boot)](https://spring.io/projects/spring-boot)\n\n## Donations\n\nIf you want support project and developer\n\n| Crypto                                                                                              | Address                                        | Network  |\n|-----------------------------------------------------------------------------------------------------|------------------------------------------------|----------|\n| ![](https://img.shields.io/badge/Bitcoin-000000?style=for-the-badge\u0026logo=bitcoin\u0026logoColor=white)   | **3H3jyCzcRmnxroHthuXh22GXXSmizin2yp**         | Bitcoin  |\n| ![](https://img.shields.io/badge/Ethereum-3C3C3D?style=for-the-badge\u0026logo=Ethereum\u0026logoColor=white) | **0x1b45bc41efeb3ed655b078f95086f25fc83345c4** | Ethereum |\n\nIf you want support project and developer\nwith \u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=5QMN5UQH7LDT4\"\u003ePayPal\u003c/a\u003e\n\nCopyright © 2024 Tecknobit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn7ghtm4r3%2Fnova","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn7ghtm4r3%2Fnova","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn7ghtm4r3%2Fnova/lists"}