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

Topics - Stefan1200

#21
JTS3ServerMod - the Java program
Incoming TCP connections to the query interface port from the JTS3ServerMod web interface, which you have set at telnet_port in the JTS3ServerMod_InstanceManager.cfg.

An outgoing TCP connection to the MySQL server you have set at mysql_host and mysql_port in the JTS3ServerMod_InstanceManager.cfg.

For the licence (up to version 6.5.7) and update check (all versions):
An outgoing TCP HTTPS connection to www.stefan1200.de (default HTTPS port).

And last but not least: An outgoing TCP connection to all specified TS3 server query ports (default 10011), which you have defined at the bot settings.


JTS3ServerMod Web Interface
An outgoing TCP connection to the query interface ip and port to the JTS3ServerMod (Java program), which you have set at the Query Interface settings in the main Web Interface settings.

An outgoing TCP connection to the MySQL server you have set at the installation of the Web Interface.

An outgoing TCP connection to all specified TS3 server query ports (default 10011), which you have defined at the bot settings.
#22
The web interface cache all channel and group names for up to 2 hours to speed up page loading. If you need to select a channel or group name, which was created in the last 2 hours, you can reload the cache by clicking on "Reload TS3 server data now" on the Bot Manager page, as seen on the following screenshot:
https://www.stefan1200.de/documentation/jts3servermod_mysql/webinterface3/reload_cache.png
#23
-= Description =-
My Chrome browser is bugged and can't delete the download history. No matter which way you use to delete the download history, after restarting chrome, the whole download history is back.

The only solution is to delete the file "%localappdata%\Google\Chrome\User Data\Default\History", which also deletes the visited website history. For this case I created a small script, which do this.


-= Usage =-
Just unpack the download zip file and put the cmd file where you want. Double click the cmd script to delete the Chrome history.


-= Download =-
Chrome_History_Delete.zip
#24
Current changelog:

QuoteWeb Interface 3.0 Build 3024 (??.10.2016)
+ Admins can now delete inactive user accounts in the User Manager with less clicks, which have no bots and are not admins.
  Similar to the inactive bot deletion, introduced in build 3017.
+ New contact form, which allows users to send an email to a specified email address, without to know the email address.
  If a user is logged in, name and mail address is already in the contact form. Also a list of bots will be displayed for bot related questions.
  The recipient get a direct link to the bot settings in this case. This contact form can be disabled in the Web Interface settings.
+ It is now possible to create a new bot and copy all settings from another bot.
  Permission to create a new bot is needed (or being an admin, of course).
  Just click on the "copy bot" button in the bot list.
- Bugfix: All outgoing mails now have the right text encoding set (UTF-8), so special characters should be displayed fine in all email clients.
- Bugfix: Fixed smaller design errors.
o Added error messages to the bot user management and the web interface user management, if the bot does not exists or the admin level is to low.
o Removed more HTML code from the PHP files and put them into tmpl files.
o Changed or added files: include/userlist.php, include/register.php, include/contact.php, include/Translation.php, include/settings.php,
  include/botcreate.php, include/botlist.php, include/botmanager.php, include/botuser.php, templates/backtomain.tmpl,
  templates/botcreate.tmpl, templates/botcreate_default.tmpl, templates/botlist_all_row.tmpl, templates/botlist_row.tmpl, templates/botlist_row_copy.tmpl,
  templates/botlist_row_rename.tmpl, templates/contact.tmpl, templates/contact_email.tmpl, templates/framemenu.tmpl, templates/framemenu_user.tmpl,
  templates/settings.tmpl, templates/userlist.tmpl, templates/userlist_deleteinactiveusers.tmpl, templates/userlist_deleteinactiveusers_row.tmpl,
  index.php, sql/default.sql, sql/autoupdate/3024.sql, images/email.png, images/page_copy.png

Web Interface build 3024 is now feature complete, only bug fixing and changes because of JTS3ServerMod changes will be done.
#25
I created a small How To, which shows you how to setup Eclipse to create JTS3ServerMod plugins. Maybe it helps some people.

http://www.stefan1200.de/documentation/jts3servermod/jts3servermod_plugindevelopment/index.html
#26
Some of you may now, that the Licence Check of the JTS3ServerMod Hosting Edition has a grace time of 12 hours, if the licence server is offline. Last night the database was not working, but the web server itself did. The server side script was not prepared for this and was sending the wrong answer to the JTS3ServerMod. That is the reason, why this grace time was not working and all your bots was stopping.

After doing a server side change, I simulated a database downtime and tested it with the JTS3ServerMod. The grace time is working now, in future a downtime with up to 12 hours of the database and/or web server will not affect a running JTS3ServerMod. Only starting a stopped JTS3ServerMod will not work while the website or database is offline.

This will give my hoster more time to fix the problems in future. No update of the JTS3ServerMod is necessary, because it was a server side fix at the licence server script.

If the licence server is not reachable, you get a message in the JTS3ServerMod_InstanceManager.log file:
LICENCE_CHECK   Error while validating heartbeat token! Reason: Licence Server answer: 500 Internal Server Error
#27
Beispiel:
[^A-Za-z1-9\-\_]+

Wenn im Namen was anders vor kommt, als Buchstaben, Zahlen, Minus und Unterstrichen, wird die Funktion aktiv. Dies kann natürlich um weitere Zeichen ergänzt werden. Das Zeichen ^ ist hier aber wichtig (Negation aller Zeichen in den eckigen Klammern). Das Plus steht für beliebig viele Zeichen.

Achtung, ich habe das nicht ausgiebig getestet.
#28
Since web interface build 3023 this is not needed anymore, because fatal run-time errors will be always displayed.

If you just get a white page in your browser, if you try to open the index.php or install.php of the web interface, enable the debug mode to see why this happens. By default the web interface is surpessing all PHP notices, warnings and error messages. But on critical PHP errors you see nothing.

Open the install.php and/or index.php with an editor like Notepad++, by default the first 10 lines of both files looks like:
<?PHP

error_reporting(0); ## LIVE

#ini_set('display_errors', 1); ## TESTING
#error_reporting(E_ALL);  ## TESTING


header("Content-Type: text/html; charset=utf-8");
mb_internal_encoding('UTF-8');


To enable the debug mode, comment out line 3 and uncomment the lines 5 and 6.
<?PHP

#error_reporting(0); ## LIVE

ini_set('display_errors', 1); ## TESTING
error_reporting(E_ALL);  ## TESTING


header("Content-Type: text/html; charset=utf-8");
mb_internal_encoding('UTF-8');


Save this changes to your web server. Now reload the page in your browser. Now you can read the PHP error message in your browser. After you have fixed this problem, just change both files back to the original state.
#29
*** English ***
Communications link failure: This means that the DB isn't reachable at all. This can have one or more of the following causes:

  • IP address or hostname of the MySQL server in the JTS3ServerMod_InstanceManager.cfg is wrong.
  • Port number is missing or wrong of the MySQL server in the JTS3ServerMod_InstanceManager.cfg.
  • Check the bind-address attribute of the MySQL server. Make sure that the bind-address attribute in the MySQL server settings (my.cnf / my.ini) is bound to a valid network interface or "0.0.0.0".
  • Make sure, that the skip-networking attribute is disabled in the MySQL server settings (my.cnf / my.ini).
  • DB server is down.
  • DB server doesn't accept TCP/IP connections.
  • DB server has run out of connections.
  • Something in between Java and DB is blocking connections, e.g. a firewall or proxy.

This is not an error of the JTS3ServerMod, this is the error message of the Java MySQL driver or MySQL server.


*** Deutsch ***
Communications link failure: Das bedeutet, dass die Datenbank nicht erreichbar ist. Das kann eines der folgenden Gründe haben:

  • Die IP Adresse oder der Hostname vom MySQL server sind in der JTS3ServerMod_InstanceManager.cfg falsch.
  • Der Port vom MySQL Server ist in der JTS3ServerMod_InstanceManager.cfg falsch gesetzt.
  • Überprüfe das bind-address Attribut vom MySQL Server. Stelle sicher, dass das bind-address Attribut in den MySQL Server Einstellungen (my.cnf / my.ini) zu einem gültigen Netzwerk Interface oder "0.0.0.0" gebunden ist.
  • Stelle sicher, dass das skip-networking Attribut in den MySQL Server Einstellungen (my.cnf / my.ini) deaktiviert ist.
  • Datenbank Server ist offline.
  • Datenbank Server erlaubt keine TCP/IP Verbindungen.
  • Datenbank Server hat das Verbindungslimit überschritten.
  • Irgendwas zwischen Java und der Datenbank blockiert die Verbindung, z.B. eine Firewall oder Proxy.

Dies ist kein Fehler vom JTS3ServerMod, dies ist eine Fehlermeldung vom Java MySQL Treiber oder MySQL Server.
#30
Die URL kann in den E-Mail Template vom Web Interface fest geändert werden, diese liegen im templates Ordner vom Web Interface. Das ist dann interessant, wenn die Personen eine andere Homepage als Einstiegsseite verwenden sollen.

Und zwar die Dateien:
newaccount_email.tmpl
pwchange_email.tmpl
register_email.tmpl
resetpw_email.tmpl

Den Eintrag {homepageurl} einfach ersetzen mit der Adresse (der Dateiname index.php muss bei der resetpw_email.tmpl mit angegeben werden), die dann in der E-Mail stehen soll. Bitte bedenken, das dies dann bei einer Änderung der Homepage Adresse (zum Beispiel bei einem Umzug) von Hand angepasst werden muss.
#31
*** English ***
You get the following warning while starting the JTS3ServerMod Hosting Edition with the MySQL mode activated:
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

This message is from the MySQL JDBC driver. Starting with the above MYSQL server versions, the MySQL connection use SSL encryption by default. You get the warning, because the MySQL server certificate can't be verified.

There are three possibilities now:

  • You get a valid certificate for your MySQL server, which can be checked by the JDBC driver (recommended, if you use a remote connection to the MySQL server).
  • You ignore the warning, so you have a encrypted connection to the MySQL server (but the remote server will not be validated).
  • You disable the SSL encryption to the MySQL server. To do this, just open the JTS3ServerMod_InstanceManager.cfg and set mysql_useSSL and mysql_verifyServerCertificate to 0 (it is okay, if you connect using localhost / 127.0.0.1 / ::1).


*** Deutsch ***
Beim Starten der JTS3ServerMod Hosting Edition mit aktiviertem MySQL Modus kommt folgende Warnung:
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Die Meldung kommt vom MySQL JDBC Treiber. Ab den oben genannten MySQL Server Versionen wird SSL als Standardeinstellung verwendet. Die Warnung kommt deshalb, weil das Server Zertifikat nicht verifiziert werden kann.

Man hat nun drei Möglichkeiten:

  • Du kümmerst dich um ein gültiges Zertifikat für deinen MySQL Server, das vom JDBC Treiber überprüft werden kann (empfohlen, wenn du eine Remote Verbindung zum MySQL Server aufbaust).
  • Du lebst mit den Warnungen, hast dafür aber eine verschlüsselte Verbindung zum SSL Server (bei der aber die Gegenstelle nicht überprüft werden kann).
  • Du schaltest die SSL Verschlüsselung zum MySQL Server ab. Dazu öffnest du die Datei JTS3ServerMod_InstanceManager.cfg und setzt mysql_useSSL und mysql_verifyServerCertificate auf 0 (in Ordnung, wenn du die Verbindung über localhost / 127.0.0.1 / ::1 aufbaust).
#32
Offensichtlich hat mein Hoster gerade meine Daten auf einen neuen Server umgezogen, ohne mich zu informieren. Das führt dazu, das einige Sicherheitsmechanismen von der Lizenzüberprüfung aktuell anschlagen. Im Moment kann ich nur empfehlen, den Bot für die nächsten Stunden nicht neuzustarten, bis die DNS Einträge bei den externen DNS Servern aktualisiert worden sind.
#33
Since the next version 6.1.3 needs some more days to get released, I want to write down the next JTS3ServerMod changes for my donators.

As you can see at the version number, it will be no big jump, but some of you might be very happy with version 6.1.3. Here is the current changelog:

Version 6.1.3 (??.04.2016)
! Plugin API build is now 2, check out the new plugin API documentation.
  API changes:
  HandleTS3Events: Renamed handleClientEvents to handleTS3Events
  JTS3ServerMod_Interface: Changed parameter type from getClientListEntry(String clientID) to getClientListEntry(int clientID)
  API add:
  JTS3ServerMod_Interface: removeClientListEntry(int clientID)
  JTS3ServerMod_Interface: setChannelName(int channelID , String newName)
  JTS3ServerMod_Interface: removeChannelListEntry(int channelID)
+ New JTS3ServerMod config value bot_timezone to set the timezone of a bot.
  By default, the default timezone of the operating system will be used (like older JTS3ServerMod versions).
+ Added a new chat command findrule for BadChannelNameCheck and BadNicknameCheck.
  This allows you to find all matching regex rules for a name, good for testing if a regex rule is working (or not :)).
+ JTS3ServerMod start argument -versioncheck has different exit codes now. Very useful for an JTS3ServerMod update check in shell scripts.
  Exit code list:
  -1 = Error while requesting version information from www.stefan1200.de
   0 = No update available
   1 = New stable version is available
   2 = New development version is available
- Bugfix at Bad Channel Name Check: If more than one regex rule is matching a channel name at the same time,
                                    multiple error messages will be written into the bot log (invalid channelID / invalid clientID). (thx to Alexander S.)
o Changed the output of the chat command !botversioncheck a little bit.


Web Interface 3.0 Build 3019 (??.04.2016)
+ Complete redesign of the web interface settings.
+ You can set the timezone of the web interface now. By default, the timezone of the PHP installation will be used (like in older versions).


Current ETA: Sunday evening (CEST) 30. April / 1. May
#34
I know that one person is using PHP 5.2, which would be okay for me to implement a small new feature.

But is someone using PHP 5.0 or 5.1? Because the web interface build 3019 will require at least PHP version 5.2. Since PHP 5.0 and 5.1 are already out of support for 10 years now, it should be the time to update your web server now!
#35
*** English ***
You noticed, that the web interface use a different timezone, as your server? Or your server has to be in a different timezone than your web interface?

Just open the php.ini file of your web server and look at the value of date.timezone. Change this to a timezone you want, valid values can be found there: http://php.net/manual/en/timezones.php

You can change the timezone also in the settings of the Web Interface build 3019 and newer.


*** German ***
Du hast festgestellt, dass das Web Interface eine andere Zeitzone verwendet, als der Server? Oder der Server muss eine andere Zeitzone verwenden, als das Web Interface?

Öffne die php.ini Datei von deinem Web Server und schaue auf den Wert von date.timezone.  Ändere dies in eine Zeitzone, die du haben möchtest. Gültige Werte sind dort aufgelistet: http://php.net/manual/de/timezones.php

Die Zeitzone kann auch in den Einstellungen vom Web Interface build 3019 oder neuer geändert werden.
#36
This information are only valid for the JTS3ServerMod Hosting Edition up to version 6.5.7!


What is the Licence Key?
The Licence Key is unique for every person and is created with your email address. You need this Licence Key to start the JTS3ServerMod Hosting Edition since version 6.0.


Where I get my personal Licence Key?
Just visit this page, after you visit this forum: https://www.stefan1200.de/licencemanagement/
On this page you can also see all started JTS3ServerMod instances with your Licence Key. You can also see the maximum allowed amount of running JTS3ServerMod instances with your Licence Key.


How many bots I can start with my Licence Key?
This is only limited to your system memory, CPU power and the disk space of your database. If you have a very powerful machine, you can run many thousands of bots (which can connect even to different TS3 servers) on it using a single JTS3ServerMod process.


My Licence Key is limited to X installations. What does that mean?
Depends on the amount of your donation, you can only run up to X JTS3ServerMod processes at the same time. But this do not limit the amount of bots (see last question above), because a single JTS3ServerMod process can run multiple bots at the same time.


Which connections are needed for the Licence Check of the JTS3ServerMod?
Just a TCP HTTPS connection to www.stefan1200.de (default HTTPS port).


What happens if the connection to www.stefan1200.de is not possible?
If this happens while you start the JTS3ServerMod Hosting Edition, the JTS3ServerMod will not start. Just check if you can reach the Licence Management with your browser. If this is possible, it is maybe an issue with your firewall settings. Feel free to contact me by email, if you have also problems to open the Licence Management with your browser.

The JTS3ServerMod also checks every 4 hours if the Licence Key is still valid. If this connection is not possible, the JTS3ServerMod tries again 4 hours later without stopping. If to many sequential validations are not possible, the JTS3ServerMod stops.


While the JTS3ServerMod checks the Licence Key, what data will be transmitted to you?
The JTS3ServerMod transmits the JTS3ServerMod build number, the Licence Key and a hashed installation token to identify the installation. No passwords or any other stuff will be transferred to my server. This is needed to check, if you have a valid licence. The IP address of the TCP source will be saved to this JTS3ServerMod installation token. But no information will be forwarded to other companies or persons. The connection to my web site is secured by HTTPS using TLS encryption.
#37
The JTS3ServerMod Web Interface is using the PHP mail function to send mails, if someone registered to the Web Interface or used the resend password function. PHP itself requires an SMTP client to send a mail. In most cases a fully configured web server should have this.

If you don't have a mail server installed, you could install a full-featured mail transfer agent (MTA) like Postfix to serve this function. But it's overkill if you only need to send mail through PHP, instead just install msmtp. It's lightweight and much simpler to configure.


Install msmtp
Install the packages msmtp and ca-certificates
Example on Debian:
apt-get install msmtp ca-certificates


Configure msmtp
Create a new configuration file at /etc/msmtprc with the following configuration information:
# Set default values for all following accounts.
defaults

# Enable or disable TLS/SSL encryption.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Set up a default account's settings.
account default
host <smtp.example.net>
port 587
auth on
user <username@example.net>
password <password>
from <address-to-receive-bounces@example.net>
logfile /var/log/msmtp/msmtp.log


You need to put your own configuration information at host/username/password/from, make sure that you removed the brackets as well. For host/username/password, use your normal credentials for sending mail through your mail provider.

Tell PHP to use it, open your php.ini file, might be at /etc/php5/apache2/php.ini
To know the real path, check out the phpinfo() output at: Loaded Configuration File

Add/replace this single line:
sendmail_path = /usr/bin/msmtp -t


Set up logging
mkdir /var/log/msmtp
chown www-data:adm /var/log/msmtp
nano /etc/logrotate.d/msmtp


Add these lines to the new file:
/var/log/msmtp/*.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}


If you'd like to be able to view the logs as yourself, you should add yourself to the www-data group.


Full msmtp documentation: http://msmtp.sourceforge.net/documentation.html
#38
To all Teamspeak 3 hosters out there:
By default a normal TS3 server admin has the permission b_virtualserver_start.
Does your customers have the permission b_virtualserver_start too, or do you remove this permission from the server admin group?


*** German ***
An alle Teamspeak 3 Hoster da draußen:
Normalerweise hat ein normaler TS3 Server Admin das Recht b_virtualserver_start gesetzt.
Haben eure Kunden das Recht b_virtualserver_start auch gesetzt, oder entfernt ihr das von der Server Admin Gruppe?
#39
The JTS3ServerMod itself allows to set a different MySQL port. The current version of the Web Interface just use the default MySQL port, which is set at the MySQLi module in the php.ini, value name: mysqli.default_port

If you can't change that value (maybe it's not your web server or you use different MySQL servers for hosted web pages), you can't change that value in the current version of the JTS3ServerMod Web Interface. But you can hard code the MySQL port number by doing a simple change to two PHP files.

Open the file class/dbconnect.php, line 22
$this->link = mysqli_connect($config[1], $config[2], $config[3], $config[4]);
change to (example port 3307)
$this->link = mysqli_connect($config[1], $config[2], $config[3], $config[4], 3307);

Open the file install.php, line 230
$dblink = mysqli_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpassword'], $_POST['mysqldatabase']);
change to (example port 3307)
$dblink = mysqli_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpassword'], $_POST['mysqldatabase'], 3307);

After doing this two changes, just start the installation of the Web Interface using the install.php file. The line number might change in future versions, just make sure to find the mysqli_connect line. Make sure to redo this changes, if you update this files of the Web Interface in the future.

If more people write to me, that they need this option implemented by default, I can add this. But I think this manual change is quite easy and the 1 or 2 people, who don't use the default MySQL port, can do it.
#40
Open the MySQL database of the web interface with your MySQL Administration Tool (like PHPMyAdmin) and open the jts3servermodwebui_users table. Now search for the blocked user account. At the blocked user account just set the column logintrycount to 0. Now the user can login again (of course, only with the right password this time :) ).