Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - UncleSam

#1
Hi,


I have no real experience in running jts3servermod using docker, but I found a ways for me which seems to work fine. Feel free to try it. Of course this is NOT official - so use at your own risk.


Regarding the license system I have no clue at the moment if this is working as expected or not. Basically it has the same ip address but could have different hardware specs every time you delete the container and respawn it again.

I am not using a special docker container which contains the hosting files. Instead I am using the official openjdk image and just mount the bot-files inside. The benefit is also that this is not exposing any hosted files.


Requirements:


       
  • knowledge about docker and docker compose
  • working bot
  • reachable database (in my case I also host the database inside docker)
  • installed "docker compose" (or the old "docker-compose")
How To:

       
  • Create a new folder
  • Inside create the "docker-compose.yaml" files (see below)
  • Stop your bot and copy your bot folder in the subfolder "botfiles"
  • Add the "entrypoint.sh" inside this folder
Also make sure to update the binding and telnet whitelist.


After performin this steps start the container using "docker compose" and check if it fails for something.


docker-compose.yaml
version: '3.5'
services:
        jts3servermod:
                container_name: jts3servermod
                image: openjdk:22
                volumes:
                        - ./botfiles:/botfiles
                restart: unless-stopped
                environment:
                        TZ: Europe/Berlin
                entrypoint: ["/botfiles/entrypoint.sh"]



entrypoint.sh
#!/bin/sh
cd /botfiles


# delete pid and lock file which could lead into the bot not starting
rm -f /botfiles/config/jts3servermod.pid
rm -f /botfiles/config/JTS3ServerMod_InstanceManager.cfg.lock


# run the bot
/usr/bin/java -Xms1G -Xmx2G -jar JTS3ServerMod.jar
#2
JTS3ServerMod MySQL & WebInterface / Re: Autostart
June 01, 2020, 03:14:05 PM
Wenn dein Linux systemd benutzt (wie z.B. Ubuntu Server seit ein paar Versionen), dann kannst du dir selbst ein Startscript schreiben wie ich hier: https://www.stefan1200.de/forum/index.php?topic=831.msg4667#msg4667
Das startet und überwacht dann den Prozess. Im Beispiel bei mir wird dieser Dienst dann wenn er unerwartet beendet wurde nach 15 Sekunden erneut gestartet. Das funktioniert bei mir schon seit geraumer Zeit 1a mit Ubuntu Server 18.04 LTS.
#3
Konnte den Bot eben wieder starten. Ist das Problem behoben?
#4
Habs auf Ubuntu 18.04 LTS getestet mit:

       
  • Oracle Java 8
  • OpenJDK 9
  • OpenJDK 8
leider bei allen ein ähnlicher Output (nur bei OpenJDK 9 kam eeine "Could not generate DH keypair" Meldung - vermutlich noch nicht unterstützt).
#5
Bei mir leider auch, bekomme den Bot nicht mehr zum laufen dadurch :-(

JTS3ServerMod 6.5.5 Hosting Edition (27.01.2019) Instance Manager started...
Operating System : Linux (version: 4.4.0-042stab136.1 / arch: amd64)
Used Java Version: 1.8.0_201 (path: /usr/lib/jvm/java-8-oracle/jre)
Current directory: /home/tsbots/JTS3ServerMod_HostingEdition
Writing InstanceManager log file to: /home/tsbots/JTS3ServerMod_HostingEdition/JTS3ServerMod_InstanceManager.log
Loading InstanceManager config file from: /home/tsbots/JTS3ServerMod_HostingEdition/config/JTS3ServerMod_InstanceManager.cfg
Successfully connected to MySQL server for logging!
MySQL mode enabled!
Got unexpected answer from licence server: 4c - Please contact info@stefan1200.de to get assist.
JTS3ServerMod licence is not valid, quitting now...
#6
Hi there,
if you want you can use my start/stop script for Systemd:
1. Create a new file: /lib/systemd/system/jts3servermod.service2. Fill it like this sample:[Unit]Description=JTS3ServermodAfter=network.target[Service]
PIDFile=/path/to/JTS3ServerMod_HostingEdition/jts3servermod.pid
WorkingDirectory=/path/to/JTS3ServerMod_HostingEdition/
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar JTS3ServerMod.jar
Type=simple
Restart=always
RestartSec=15
User=botusername
Group=botgroupname

[Install]
WantedBy=multi-user.target

Description (just of some entries):

       
  • Restart always: if bot was stopped for any reasons other then 'service jts3servermod stop' or 'systemctl stop jts3servermod' it starts this service again
  • RestartSec 15: if the above happens it waits 15 seconds between crash and start
  • User: linux username the bot should run under
  • Group: optional, if not used comment it using "#" or delete it
3. enable it to auto start systemctl daemon-reload
systemctl enable jts3servermod.service

4. Have fun :-)service jts3servermod start/stop/restart
Image already added
#7
Quote from: Lykhano on October 10, 2016, 09:09:00 PM
Hey,

ich habe gespendet. Müsstest eigentlich auch informiert worden sein  ;D

MFG

Daten sind eben raus - viel Spaß damit!
#8
I switched to Ubuntu 16.04 LTS and had to rewrite my JTS3ServerMod boot script. Sry it was a little bit too late. First I created one and then "oh ... lets search in the forum"  :o

(So it is tested for Ubuntu 16.04 LTS)

So I found two ways to start the bot. Each one has its benefits:

First way:
Execute is by using the new jts3servermod_startscript.sh from Stefan


Pro:
- Uses technology from stefan
Con:
- Is not having any benefits from SystemD


Code:
[Unit]
Description=JTS3Servermod
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service
Before=shutdown.target reboot.target halt.target


[Service]
WorkingDirectory=/home/tsbots/JTS3ServerMod_HostingEdition/
ExecStart=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod_startscript.sh start
ExecStop=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod_startscript.sh stop
Type=oneshot
User=tsbots
Group=tsbots
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target



Second way (my prefered):
Execut is directly by using java command


Pro:
- Benefits like "Restart" is possible and used (as soon as the service stopps without systemd stop command it restarts again)


Code:

[Unit]
Description=JTS3Servermod
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service


[Service]
PIDFile=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod.pid
WorkingDirectory=/home/tsbots/JTS3ServerMod_HostingEdition/
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar JTS3ServerMod.jar
Type=simple
Restart=always
RestartSec=15
User=tsbots
Group=tsbots



[Install]
WantedBy=multi-user.target



Maybe someone is interested in this code - I use the upper one for all my programs/tools which already have good old sysvinit start scripts (never change a running system)  ;D
#9
Danke dir. War mir nicht sicher wo ich es posten soll.

PS: hier fehlt ein Thank you Mod I'm Forum  :) *THUMBSUP*
#10
Für alle die sowas benötigen:
Ich habe eine temporäre Lösung für mich geschaffen. Wer will kann es gerne verwenden (auf eigene Gefahr!).

Nachfolgend ist beschrieben, wie man in einer Ubuntu 14.04 Umgebung ein Startscript erstellt, welches den Bot unter einem definierten Benutzer ausführt. Außerdem ist damit auch der Start des Bots beim Systemstart möglich. Dabei benutzt das Script lediglich das Start/Stop Script von Stefan1200 (sprich es leitet alle Anfragen weiter).

Changelog:
Quote
pre 01.05.2016

       
  • Initial release
01.05.2016

       
  • Command "java" now gets executed under current user, so root is able to install java

Installationsanleitung:
Script (speichern in /etc/init.d/jts3servermod):
Code (Bash) Select
#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: JTS3ServerMod init.d script
# Description:      JTS3ServerMod by stefan1200.de
### END INIT INFO


dir="/home/tsbots/JTS3ServerMod_HostingEdition"
cmd="./jts3servermod_startscript.sh"
user="tsbots"


case "$1" in
        java)
                cd "$dir"
                $cmd java
        ;;
        start)
                cd "$dir"
                sudo -u "$user" $cmd start
        ;;
        stop)
                cd "$dir"
                sudo -u "$user" $cmd stop
        ;;
        restart)
                cd "$dir"
                sudo -u "$user" $cmd restart
        ;;
        status)
                cd "$dir"
                sudo -u "$user" $cmd status
        ;;
        *)
                cd "$dir"
                sudo -u "$user" $cmd
esac
exit 0



Anschließend das Script ausführbar machen:
Quote# chmod u+x /etc/init.d/jts3servermod


Wer den Bot automatisch starten/stoppen lassen möchte muss nur noch folgendes eingeben (Informationen siehe Header des StartScriptes):
Quoteupdate-rc.d jts3servermod defaults


Verwendung:

Du kannst nun den Bot per root starten/stoppen/... im jeweiligen Benutzerkontext. Sofern du den Bot mit dem Benutzer selbst kontrollieren willst kannst du dies mit dem Start/Stop Script im Bot Verzeichnis selber.

Befehl (anstatt von "start" geht auch: stop, restart, status und java):
Quote# service jts3servermod start

Oder alternativ:
Quote# /etc/init.d/jts3servermod start

Edit by Stefan1200: BBCode fixes
#11
Hallo,


könntest du in dein Script die Möglichkeit einbauen dieses unter einem bestimmten Benutzer zu starten?


Grund:
Ich lasse den Bot beim Start des Systems automatisch starten. Da ich nicht will dass dieser als root Benutzer läuft muss dieser unter einem definierbaren User gestartet werden.
#12
JTS3ServerMod MySQL & WebInterface / Re: Frage
April 09, 2016, 11:19:07 PM
Quote from: SkullDrago on July 12, 2015, 01:14:34 PM
Ja den kenne ich auch schon nur braucht der leider einen xinit server zum starten. Da ein vernünftiges start-stop script zu schreiben ist schwer. bin auch schon dran gescheitert. Im moment geht nur mit screen und xinit das starten des servers. Also noch etwas kontra produktiv. Hoffe aber das bessert sich. Die musikübertragung ist aber spitze
Soweit ich das gesehen habe ist xinit nicht mehr erforderlich seit einer neuen Version.


Shell StartScript (von mir  ;) ): https://forum.sinusbot.com/threads/start-stop-restart-autostart-script.1241/
Apache redirect (von mir  ;) ): https://forum.sinusbot.com/threads/apache-2-redirect.1242/
#13
Nachdem die TLDs sich ja schlagartig vermehren finde ich gibt es nur noch zwei verschiedene Arten der Validierung:


Entweder:
- Grob per RegEx prüfen ob es eine Mail-Adresse sein könnte (bevor man etwas macht)
- Anschließend einfach eine Aktivierungsmail schicken. Stimmt die Adresse nicht so kann man nichts machen.


Oder (wenn man mehr validieren will):
- Grob per RegEx prüfen ob es eine Mail-Adresse sein könnte
- Per DNS prüfen ob die Domain nach dem "@" einen MX Eintrag besitzt (kein MX --> nicht valid)
- Aktivierungsmail schicken :-)


Ob es eine E-Mail Adresse gibt wird man wohl ohne Aktivierungsmail nie hinkriegen. Siehe: https://davidcel.is/posts/stop-validating-email-addresses-with-regex/
#14
Funktioniert bei mir auch ohne Probleme. Eine Frage habe ich aber:


Durch die Lizenzseite habe ich festgestellt, dass hier meine "alte" E-Mail Adresse drinnen ist. Diese ist zwar nach wie vor gültig und wird nach wie vor genützt, aber im Prinzip würde ich die gerne auf meine Hauptadresse ändern. Muss ich dabei was beachten?
#15
Quote from: Dr.No on January 08, 2016, 10:38:15 PM
Nach etwas hin und her überlegen könnte wenn gebraucht dir mit einem Test  Server aushelfen vserver? Einfach
Melden anderweitige Hilfe wenn was benötigt einfach Fragen


Dito - vserver mit OS nach Wunsch (auch Windows). Einfach sagen.