Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
cadergator10

Servertine: Modular and powerful server and database system

Recommended Posts

Servertine is an easy to use platform to build programs off of with some extra features in them. It is mainly comprised of the Server (Hub for all messages), the Database (Used to easily configure settings on the server), and the SerpAPI (used to connect your programs to the server). Why use the serpentine system? Well, you get

  1. Encrypted messages (dont have anyone snooping on your messages)
  2. Dedicated ports and automatic port searching (multiple systems can theoretically be in your world)
  3. A clean looking server GUI to log your modules messages
  4. Dedicated tab in the database for database module
  5. Built in support for the range extender to the SerpAPI to have a computer anywhere in the world connect to the server (provided the server is chunkloaded)
  6. Inter-module communication (build addons for modules you already made)
  7. Module installation tool on the database
  8. User Sign-in and Permissions (Give certain users permission to change certain settings on the database, or restrict them entirely.

Installation

    Server: Run wget -f https://raw.githubusercontent.com/cadergator10/Opencomputers-serpentine/main/server/server.lua server.lua and run it.

    Database: Install MineOS on a computer, go to the appstore, and look for Servertine database

Github here: https://github.com/cadergator10/Opencomputers-serpentine

Servertine Website here: https://cadespc.com

Images coming soon :)

 

For more help, join the discord https://discord.gg/wfqFsqpKvW

Edited by cadergator10
Added discord link
Link to post
Share on other sites

Next update is going to modify the module installation a little bit. Instead of relying on one modules.txt file in the servertine github, that file will have links to seperate modules.txt files in other repositories, so if you want to create modules for the system that can be auto installed, you can. I might also add a way to connect to another repo through a raw url, so if something isn't officially supported and connected, you can still download it.

Link to post
Share on other sites

Update 3.0.1 adds many important changes as well as quality of life updates.

  1. Settings button has been moved to the dev module, which looks a little nicer than the foreground container it used to show up. It requires the systemmanagement permission like module installation.
  2. You can now edit cryptKey in the settings menu.
  3. The main modules.txt file on servertine now only contains links to download the modules.txt files externally. This means, if someone gets verified, I can add their link to the txt file, and they can configure their updates themselves.
  4. If someone isn't verified, you can still connect to their module repo using external modules. In the settings module, you can add external modules by entering the raw url to their modules.txt file. Be wary of unofficial modules, as conflicting ID's will cause issues with eachother (one will be removed from being installed.)
  5. Offline mode has been added to the database. This disables all modules except for the dev module, and disables the module installation and the user settings. The only thing allowed in offline mode is changing the port and cryptKey. This is to ease up fixing the settings of a database if you mess up the port and cryptKey. Offline mode is automatically enabled on first startup of the database so you can fix port and cryptKey before accessing server.
  6. Server has a few checks in place now for when the cryptKey is incorrect, to prevent the server from crashing

I'll be adding some localizations next update.

Link to post
Share on other sites

405.gif

Little bit of what I've been imagining and working on for the past while

I am trying to build a module store like MineOS' app store. So if you build a module for the database and server, you'll be able to upload the publications to the server which can be downloaded by users. This'll mean ease of use by creators and users alike and also some programming experience for me in the future :D Such fun

This means no updates will be scheduled until a little while when I build my server pc and such, soooooo yes have a good day everyone and always remember

"FREEDOM FOR UNICORNS!" -demoman (ive been watching lots of tf2 recently if it wasn't obvious)

 

Edit: I forgot to mention that I might be making an external program for this as well using unity, so you can manage your modules and stuff without having to do all the setup and startup of minecraft open computer stuff. If I get this done there is a chance... a CHANCE I might make an unoffical program for MineOS as well, but we'll see...

Edited by cadergator10
more info
Link to post
Share on other sites

I got a plan on what I do!

I'm beginning work on the 4.0.0 update! Technically it's not a complete rewrite, but I do want to completely rewrite it in the future, so I don't care. It's big enough I feel it deserves the number

Please note I do plan on making a video on this thing to explain the update, so if you don't understand much of this it might make more sense. Here is a shameless plug https://www.youtube.com/channel/UCC492g_YuYcWKRIeQD3kqdQ

The main thing with this update is the modules system: I have a website I'm making!!! Here are some screenshots of the INCREDIBLY BETA website design (some buttons will be missing as this is my admin account, but whatever)
Screenshot 2023-02-20 184506
Screenshot 2023-02-20 184518
Screenshot 2023-02-20 184532
Screenshot 2023-02-20 184550

So yeah, you can create your modules and easily set them up yourself on the website. Basically MineOS' app store, but you do it on a website instead of the minecraft program itself.

Currently as of this moment, I have all the module stuff supported only (I think it all works), but I plan on adding all other sorts of features. The MAJOR features being the ability to report issues with the module developer themselves (as well as possible automatic reporting if it crashes!!!), forums and wiki, and all sorts of other fun QOL things. It's my way of expanding my own knowledge of programming as I reach college and a future career.

But enough of backend server stuff, you're here for the program itself! And here we goooo:

empty...
...ok a little anti-climatic, but most updates will be to the modules themselves. I plan on refining them as well as adding all (or at least most) the enhancements requested, but I'm too lazy to post all of it here, so I'm gonna do it in a video because that's... easier... yeah.

BUUUUT I do have plans on Servertine. I want to split off of MineOS and use the creator's GUI API here https://github.com/IgorTimofeev/GUI
It's a little more legacy than MineOS' and will require refactoring, but I can use this and modify OpenOS (if i learn how to) to create a standalone OS which starts up and stays inside of the Database. It's a little cheaty than making my own OS but "ain't nobody got time for that"

Safe to say I got massive visions for this (more than I've even put here). So if you have any other requests and such I'll be ready to hear. But I gotta get back to work. I've been procrastinating on my history homework for 4 hours straight watching youtube between TF2, Murder Drones, and other stupid stuff and I gotta actually get it done good lordie.

(note: My power supply is still not freaking here from the last post. Good lord MSI, I need it to even run the server. Can't have a server without power)

Link to post
Share on other sites

Wow... Servertine was decently easy to convert over to my server. Now I just need to wait for my psu so I can run the server constantly. The other updates can be done later since they are just modules. Currently, all the system can support are the creation of modules on the website and the downloading of it on the database. I'll roll out features as I add them (such as error reporting, etc.) Once I get everything up and running and verify there are NO ISSUES, I'll push out the update. I need to have a backup way to download the modules in case there are issues with the system tho, which I may add.

Link to post
Share on other sites

Hey! I got a current update progress on servertine! I made a video on this as well and just have to edit and post. Some of the stuff I say might not show on the video as its super new.

What I've actually made so far (might need debugging)

  1. I removed some redundant variables on the module prefab, so a little simpler I guess?
  2. Settings button in dev module is a little more "modular now" But how? Modules have the ability to set up settings, either bool (button), string, or number. When these modules are created, they add the settings. Now if you click the settings button in the dev module, it should add them to the list. Not only this, but SETTINGS CAN BE SET TO SYNC WITH THE SERVER! This means you can config some of your server modules THROUGH THE DATABASE! All settings on both server and database can be accessed by calling checkConfig("name") replacing name with the variable's key.
  3. Developer mode can be enabled/disabled in the settings on the dev module. Enabling it backs up all current settings on the server and deletes all current modules on the server and database and the device lists and other stuff and causes the database to download modules from the Developer pool on the website. Makes it much easier to debug your modules that you are creating. Disabling it deletes all modules like last time, but it restores any backed up settings, so if you just reinstall the modules you had before, it should work like nothing ever happened (hopefully) It still isn't recommended to enable dev mode on something you ABSOLUTELY do not want to lose progress on
  4. Version checking is available for modules, so if a developer increments the version or performs changes, it will alert you a module has had some updates (atm, it doesn't say WHO) this disables in developer mode however, as you're expected to install and reinstall modules constantly anyways.

What I aspire to do in the future

  1. Error handling along with automatic reporting of bugs to the developer
  2. Bug reports in general on modules
  3. (highly unlikely) Seperate Servertine from MineOS and make it run as a seperate OS utilizing a modified OpenOS thingy...

I KNOW I am missing some things on this, I just know I am cause its me! If I remember I'll edit this, but so far yeah this is what I got. Hope to publish this mammoth of an update whenever I can :P

If you have any ideas on what I should try adding to the database before release, don't hesitate to let me know!

Link to post
Share on other sites

IIIITTTTSSS FIIINNNIIIISSSSHHHEEEDDD!!!

Servertine 4.0.0 has just gone live!
Some new features were added for module developers, but the biggest thing is the WEBSITE!

If you want to see it, the url is here

Basically, you can easily set up modules on the site, with which files install on the server or database, the urls for the files, etc. On top of that, a developer mode added to the database allows you to download files from a DIFFERENT URL! This means no more wgetting single files into MineOS or OpenOS, now all you gotta do is enable developer mode and module installing does it all for you! Switching to developer mode also has some safety features with it. If you enter developer mode, the server saves all previous configuration (device list and all the module's settings) and saves it in a backup before it wipes all files for development testing. Then when you disable dev mode, it restores all these configurations! Now that's nice!

The Site will, over time, get more features. I hope to add some error reporting to the site as well as maybe some forums, but that'll all be added eventually.

Link to post
Share on other sites

Next planned update is going to be big. I am working on making the database work on both MineOS and OpenOS nicely.

I made 2 new files: Boot.lua and Compat.lua. All you need to install on your MineOS or OpenOS computer is Boot.lua! It's an easy one file installation. Then if you run it, it will install all dependencies (Including the Compat file, GUI api and all its dependencies) and then install all the Servertine files! It then runs the program and it just works! The compat file contains checks for whether the program is installed on MineOS or OpenOS, so when the database runs a command on the file, it converts it to the OpenOS or MineOS library! Since modules can also use the compat file if needed, it should mean that anything coded for the API will work on both systems!

On top of this, the boot file contains an autoupdater, so if a new Servertine system is released, you can choose whether to install or not. Now I don't have to worry about the MineOS servers going down lol

Lastly, this boot file will allow me to have my own error handling. If I learn how to do it right, it provides a way for me to add in automatic error reporting in the future.

Link to post
Share on other sites

Little late, but Update 4.0.2 has been released (I may abandon this update system entirely, cause it never stays constant lol)

 

First off and majorly off: OpenOS support! You are no longer required to install MineOS to utilize the database! All this is because of a custom Compat library that tries to make any call to a command return in one kind of way.

You now only need to install one file! This doesn't matter in MineOS since you have the app market (which is still required there), but for OpenOS this is major. You don't even need to install all the GUI dependencies or compat file, they will install for you automatically. It also installs the database, which has some benefits.

Auto-updating! The file you download has the ability to automatically update your database whenever a new Servertine version comes out! This works both on MineOS and OpenOS, so you don't need the app market to update Servertine (unless the boot file needs an update or fix of course)

Error handling! There is a custom error handle in the boot file which is called if the system crashes because of the module or the database. The main reason for this is...

Anonymous Bug Reporting! If a module or the database encounters an error and it's enabled, the system will auto send the error/crash report to the server describing what may have went wrong. It's not able to be seen by developers yet, but when I add that in, it can make discovering bugs much easier for the dev

Here is the RAW url of the boot file (for installing into openos): https://raw.githubusercontent.com/cadergator10/Opencomputers-servertine/main/database/Boot.lua

 

Video series on how to install and configure everything will be rolled out over the next... weeks? When I get time I'll make videos. This will include a development tutorial to make your own programs near the end. I'll provide a link to the playlist once created

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.