GoUpdater is a fortified solution for Golang applications, enabling developers to manage updates across multiple projects on a single server. With enhanced security measures, including TLS certificate hash validation, DDOS protection, and an automatic ban mechanism, it ensures uninterrupted and secure software distribution.
-
Multi-Project Management: Host multiple projects on a single server, streamlining update deployments for various apps simultaneously.
-
Version Management: Directly upload your binaries to specific branches using commands such as
-updater=upload-to-main
or-updater=upload-to-test
. -
Secure Updates: Application instances automatically seek server-side updates, fetched over a protected channel with file integrity verification.
-
TLS Certificate Hash Validation: Ensures that the server's TLS certificate is genuine, reducing risks associated with man-in-the-middle attacks.
-
DDOS Protection & Auto-Ban: Shields the server from DDOS attacks and bans suspicious activity, ensuring operational resilience.
-
Easy Server Setup: Launching the server application is a breeze. Simply specify the root directory, TLS certificate keys file, and project descriptions in the configuration.
-
Efficient Storage: Updates are stored in compressed formats, optimizing storage space.
-
Version Archiving: TODO: Keep track of your app's evolution with the retention of past versions. By default, the last five versions are stored, but this is configurable.
Set up the server with ease: To set up the server:
-
Provide the necessary details in the JSON configuration file:
{ "Listen": "0.0.0.0:1980", // ip:port to listen to "Storage": "./storage", // specifies the root directory for update storage "Projects": // an array that defines descriptions of the projects hosted: [ { "Name": "PROJECT_NAME", "Key": "KEY", // auth key to upload and check for updates "Branch": "main" // "test", etc. project branch for upload or chack for updates }, ... ] }
-
Launch the server application.
To use GoUpdater within your application:
var update = goupdater.New("server ip:port", "server auth key", "project name", "project branch");
Verify server-hosted updates:
if ok,err=update.Check(); ok {
// Handle new updates.
update.DownloadAndReplaceMe()
}
update.Check()
will return true
if a newer version is available.
update.DownloadAndReplaceMe()
will download new file and replace current application in-place.
Upload this copy of application:
>soft --goupload=main --branch=main
Upload done!
Now all other copies of "soft" for its "projectName" and "branchName" will be updated automatically to this version.
Just build, edit server/app/config.json
and start server/app
.
Empower your projects with GoUpdater, combining seamless versioning, security, and efficiency in a unified platform.