Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. js-controller Scipte retten

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    703

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

js-controller Scipte retten

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
js-controller
18 Beiträge 6 Kommentatoren 2.0k Aufrufe 7 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    cactus-online
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich musste meinen ioBroker neu installieren, weil er irgendwie kaputt war. Ich habe das alte Verzeichnis aber noch. Gibt es eine Chance die Scripte, die ich im js-controller angelegt hatte, aus dem alten Verzeichnis zu retten und im neuen ioBroker im js-controller wieder anzulegen ?

    Danke für jegliche Hilfe,

    sigi234S F 2 Antworten Letzte Antwort
    0
    • C cactus-online

      Hallo,

      ich musste meinen ioBroker neu installieren, weil er irgendwie kaputt war. Ich habe das alte Verzeichnis aber noch. Gibt es eine Chance die Scripte, die ich im js-controller angelegt hatte, aus dem alten Verzeichnis zu retten und im neuen ioBroker im js-controller wieder anzulegen ?

      Danke für jegliche Hilfe,

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @cactus-online sagte in js-controller Scipte retten:

      Hallo,

      ich musste meinen ioBroker neu installieren, weil er irgendwie kaputt war. Ich habe das alte Verzeichnis aber noch. Gibt es eine Chance die Scripte, die ich im js-controller angelegt hatte, aus dem alten Verzeichnis zu retten und im neuen ioBroker im js-controller wieder anzulegen ?

      Danke für jegliche Hilfe,

      Mehr Infos bitte!

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      1 Antwort Letzte Antwort
      0
      • C cactus-online

        Hallo,

        ich musste meinen ioBroker neu installieren, weil er irgendwie kaputt war. Ich habe das alte Verzeichnis aber noch. Gibt es eine Chance die Scripte, die ich im js-controller angelegt hatte, aus dem alten Verzeichnis zu retten und im neuen ioBroker im js-controller wieder anzulegen ?

        Danke für jegliche Hilfe,

        F Online
        F Online
        fastfoot
        schrieb am zuletzt editiert von
        #3

        @cactus-online Kannst du die objects.json in /opt/iobroker/iobroker-data finden? Darin sind alle Skripte enthalten. Falls ja kann es weitergehen

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        C 1 Antwort Letzte Antwort
        0
        • F fastfoot

          @cactus-online Kannst du die objects.json in /opt/iobroker/iobroker-data finden? Darin sind alle Skripte enthalten. Falls ja kann es weitergehen

          C Offline
          C Offline
          cactus-online
          schrieb am zuletzt editiert von
          #4

          @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

          F 1 Antwort Letzte Antwort
          0
          • C cactus-online

            @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

            F Online
            F Online
            fastfoot
            schrieb am zuletzt editiert von
            #5

            @cactus-online sagte in js-controller Scipte retten:

            @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

            • lege die objects.json des alten Systems in einen Ordner, z.B. /opt/iobroker/restore
            • starte das Skript, in Zeile 7 noch den Pfad anpassen
            • die Skripte befinden sich danach im Ordner mit den entsprechenden Endungen

            /**
             * Extract scripts from objects.json
             * by @fastfoot 16.11.2020
             * 
             */
            const fs = require('fs'),
                  path = '/opt/iobroker/restore/';      // <=== Pfad eintragen mit abschliessendem /
            let allObjects = {},
                script = {},
                name = '', 
                xml = '',
                logging = false;
            
            try{
                allObjects = JSON.parse(fs.readFileSync(path + 'objects.json', 'utf8'))
            } catch(e){
                log('objects.json wahrscheinlich defekt oder falscher Pfad angegeben',"error")
            }
            
            for(let key in allObjects){
                if(allObjects[key].type == 'script'){
                    script = allObjects[key].common;
                    if(logging){    
                        log('Key:    ' + key);
                        log('Name:   ' + script.name);
                        log('Type:   ' + script.engineType);
                        log('Engine: ' + script.engine);
                    }
                    if(script.engineType == 'Blockly'){
                        name = path + key.substring(10) + '.xml';
                        xml = handleBlockly(script.source)
                        fs.writeFileSync(name, xml);
                    } else if(script.engineType == 'Javascript/js' ||script.engineType == 'JavaScript/js'){
                        name = path + key.substring(10) + '.js'
                        fs.writeFileSync(name, script.source)
                    } else {
                        name = path + key.substring(10) + '.ts'
                        fs.writeFileSync(name, script.source)
                    }
                }
            }
            
            function handleBlockly(source){
                const pos = source.lastIndexOf('\n');
                if (pos !== -1) {
                    source = source.substring(pos + 3);
                    if(source.indexOf('JTNDeG1sJTIweG1') > -1) {
                        source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                        return prettifyXml(source);
                    }
                }
            }
            
            //from Stackoverflow
            function prettifyXml(xml){
                var reg = /(>)\s*(<)(\/*)/g;
                xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                xml = xml.replace(reg, '$1\r\n$2$3');
                return xml;
            }
            
            log('done')
            
            

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            C K 2 Antworten Letzte Antwort
            2
            • F fastfoot

              @cactus-online sagte in js-controller Scipte retten:

              @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

              • lege die objects.json des alten Systems in einen Ordner, z.B. /opt/iobroker/restore
              • starte das Skript, in Zeile 7 noch den Pfad anpassen
              • die Skripte befinden sich danach im Ordner mit den entsprechenden Endungen

              /**
               * Extract scripts from objects.json
               * by @fastfoot 16.11.2020
               * 
               */
              const fs = require('fs'),
                    path = '/opt/iobroker/restore/';      // <=== Pfad eintragen mit abschliessendem /
              let allObjects = {},
                  script = {},
                  name = '', 
                  xml = '',
                  logging = false;
              
              try{
                  allObjects = JSON.parse(fs.readFileSync(path + 'objects.json', 'utf8'))
              } catch(e){
                  log('objects.json wahrscheinlich defekt oder falscher Pfad angegeben',"error")
              }
              
              for(let key in allObjects){
                  if(allObjects[key].type == 'script'){
                      script = allObjects[key].common;
                      if(logging){    
                          log('Key:    ' + key);
                          log('Name:   ' + script.name);
                          log('Type:   ' + script.engineType);
                          log('Engine: ' + script.engine);
                      }
                      if(script.engineType == 'Blockly'){
                          name = path + key.substring(10) + '.xml';
                          xml = handleBlockly(script.source)
                          fs.writeFileSync(name, xml);
                      } else if(script.engineType == 'Javascript/js' ||script.engineType == 'JavaScript/js'){
                          name = path + key.substring(10) + '.js'
                          fs.writeFileSync(name, script.source)
                      } else {
                          name = path + key.substring(10) + '.ts'
                          fs.writeFileSync(name, script.source)
                      }
                  }
              }
              
              function handleBlockly(source){
                  const pos = source.lastIndexOf('\n');
                  if (pos !== -1) {
                      source = source.substring(pos + 3);
                      if(source.indexOf('JTNDeG1sJTIweG1') > -1) {
                          source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                          return prettifyXml(source);
                      }
                  }
              }
              
              //from Stackoverflow
              function prettifyXml(xml){
                  var reg = /(>)\s*(<)(\/*)/g;
                  xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                  xml = xml.replace(reg, '$1\r\n$2$3');
                  return xml;
              }
              
              log('done')
              
              

              C Offline
              C Offline
              cactus-online
              schrieb am zuletzt editiert von
              #6

              @fastfoot:

              Cool, tausend Dank !!! Die Scripte sind wieder da. Super gemacht.

              Ich wünsche noch einen schönen Abend.

              VG,

              TF

              1 Antwort Letzte Antwort
              0
              • F fastfoot

                @cactus-online sagte in js-controller Scipte retten:

                @fastfoot Danke für die Rückmeldung. Ja habe ich. Wie finde ich da Scripte raus ?

                • lege die objects.json des alten Systems in einen Ordner, z.B. /opt/iobroker/restore
                • starte das Skript, in Zeile 7 noch den Pfad anpassen
                • die Skripte befinden sich danach im Ordner mit den entsprechenden Endungen

                /**
                 * Extract scripts from objects.json
                 * by @fastfoot 16.11.2020
                 * 
                 */
                const fs = require('fs'),
                      path = '/opt/iobroker/restore/';      // <=== Pfad eintragen mit abschliessendem /
                let allObjects = {},
                    script = {},
                    name = '', 
                    xml = '',
                    logging = false;
                
                try{
                    allObjects = JSON.parse(fs.readFileSync(path + 'objects.json', 'utf8'))
                } catch(e){
                    log('objects.json wahrscheinlich defekt oder falscher Pfad angegeben',"error")
                }
                
                for(let key in allObjects){
                    if(allObjects[key].type == 'script'){
                        script = allObjects[key].common;
                        if(logging){    
                            log('Key:    ' + key);
                            log('Name:   ' + script.name);
                            log('Type:   ' + script.engineType);
                            log('Engine: ' + script.engine);
                        }
                        if(script.engineType == 'Blockly'){
                            name = path + key.substring(10) + '.xml';
                            xml = handleBlockly(script.source)
                            fs.writeFileSync(name, xml);
                        } else if(script.engineType == 'Javascript/js' ||script.engineType == 'JavaScript/js'){
                            name = path + key.substring(10) + '.js'
                            fs.writeFileSync(name, script.source)
                        } else {
                            name = path + key.substring(10) + '.ts'
                            fs.writeFileSync(name, script.source)
                        }
                    }
                }
                
                function handleBlockly(source){
                    const pos = source.lastIndexOf('\n');
                    if (pos !== -1) {
                        source = source.substring(pos + 3);
                        if(source.indexOf('JTNDeG1sJTIweG1') > -1) {
                            source = decodeURIComponent(Buffer.from(source, 'base64').toString('utf8'));
                            return prettifyXml(source);
                        }
                    }
                }
                
                //from Stackoverflow
                function prettifyXml(xml){
                    var reg = /(>)\s*(<)(\/*)/g;
                    xml = xml.replace(/\r|\n/g, ''); //deleting already existing whitespaces
                    xml = xml.replace(reg, '$1\r\n$2$3');
                    return xml;
                }
                
                log('done')
                
                

                K Offline
                K Offline
                klassisch
                Most Active
                schrieb am zuletzt editiert von
                #7

                @fastfoot Klasse, vielen Dank!

                1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
                2. und falls doch, hoffentlich finde ich diesen Beitrag noch
                sigi234S F 2 Antworten Letzte Antwort
                0
                • K klassisch

                  @fastfoot Klasse, vielen Dank!

                  1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
                  2. und falls doch, hoffentlich finde ich diesen Beitrag noch
                  sigi234S Online
                  sigi234S Online
                  sigi234
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @klassisch sagte in js-controller Scipte retten:

                  und falls doch, hoffentlich finde ich diesen Beitrag noch

                  Lesezeichen setzen. 😉

                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Immer Daten sichern!

                  K 1 Antwort Letzte Antwort
                  1
                  • K klassisch

                    @fastfoot Klasse, vielen Dank!

                    1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
                    2. und falls doch, hoffentlich finde ich diesen Beitrag noch
                    F Online
                    F Online
                    fastfoot
                    schrieb am zuletzt editiert von
                    #9

                    @klassisch sagte in js-controller Scipte retten:

                    @fastfoot Klasse, vielen Dank!

                    1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
                    2. und falls doch, hoffentlich finde ich diesen Beitrag noch

                    tja, das Skript sollte eigentlich unnötig ein, iobroker bietet ausreichend viele und gute Möglichkeiten, seine Skripte zu sichern. Trotzdem lese ich immer wieder über nicht vorhandene Backups bei abgerauchten Systemen und da mich das Thema technisch interessiert hat habe ich es halt hurtig mal umgesetzt

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    K 1 Antwort Letzte Antwort
                    1
                    • sigi234S sigi234

                      @klassisch sagte in js-controller Scipte retten:

                      und falls doch, hoffentlich finde ich diesen Beitrag noch

                      Lesezeichen setzen. 😉

                      K Offline
                      K Offline
                      klassisch
                      Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @sigi234 wieder was gelernt, Danke!

                      1 Antwort Letzte Antwort
                      0
                      • F fastfoot

                        @klassisch sagte in js-controller Scipte retten:

                        @fastfoot Klasse, vielen Dank!

                        1. Hoffentlich komme ich nie in die Sitation die Skripte nutzen zu müsse
                        2. und falls doch, hoffentlich finde ich diesen Beitrag noch

                        tja, das Skript sollte eigentlich unnötig ein, iobroker bietet ausreichend viele und gute Möglichkeiten, seine Skripte zu sichern. Trotzdem lese ich immer wieder über nicht vorhandene Backups bei abgerauchten Systemen und da mich das Thema technisch interessiert hat habe ich es halt hurtig mal umgesetzt

                        K Offline
                        K Offline
                        klassisch
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @fastfoot Eigentlich macht mein ioBroker jede Nacht ein Backup, oder sollte es zumindest tun. Hatte aber auch schon den Fall, daß das nicht mehr lesbar war.
                        Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                        F 1 Antwort Letzte Antwort
                        0
                        • K klassisch

                          @fastfoot Eigentlich macht mein ioBroker jede Nacht ein Backup, oder sollte es zumindest tun. Hatte aber auch schon den Fall, daß das nicht mehr lesbar war.
                          Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                          F Online
                          F Online
                          fastfoot
                          schrieb am zuletzt editiert von
                          #12

                          @klassisch sagte in js-controller Scipte retten:

                          Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                          Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                          iobroker läuft unter Docker auf QNAP TS-451+
                          SkriptRecovery: https://forum.iobroker.net/post/930558

                          K M 2 Antworten Letzte Antwort
                          1
                          • F fastfoot

                            @klassisch sagte in js-controller Scipte retten:

                            Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                            Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                            K Offline
                            K Offline
                            klassisch
                            Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @fastfoot Ah, danke, jetzt sehe ich es auch.
                            72984ccd-712c-4053-9fea-f8b4e41bfa44-grafik.png

                            1 Antwort Letzte Antwort
                            0
                            • F fastfoot

                              @klassisch sagte in js-controller Scipte retten:

                              Deshalb: Welche Möglichkeiten gibt es noch, die JScripte zu sichern?

                              Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                              M Offline
                              M Offline
                              Markus84
                              schrieb am zuletzt editiert von
                              #14

                              @fastfoot said in js-controller Scipte retten:

                              Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                              Sichert der BackitUp-Adapter die Skripte nicht mit?

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • M Markus84

                                @fastfoot said in js-controller Scipte retten:

                                Ich nutze oft die Option Exportieren Sie alle Skripte, zusammen mit dem BackitUp-Adapter ist man da immer auf der sicheren Seite

                                Sichert der BackitUp-Adapter die Skripte nicht mit?

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #15

                                @Markus84 sagte:

                                Sichert der BackitUp-Adapter die Skripte nicht mit?

                                Doch, aber nur zusammen mit allen anderen Objekten.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                                M 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @Markus84 sagte:

                                  Sichert der BackitUp-Adapter die Skripte nicht mit?

                                  Doch, aber nur zusammen mit allen anderen Objekten.

                                  M Offline
                                  M Offline
                                  Markus84
                                  schrieb am zuletzt editiert von
                                  #16

                                  @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                                  F 1 Antwort Letzte Antwort
                                  0
                                  • M Markus84

                                    @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                                    F Online
                                    F Online
                                    fastfoot
                                    schrieb am zuletzt editiert von
                                    #17

                                    @Markus84 sagte in js-controller Scipte retten:

                                    @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                                    JJJein. Der Sinn des Skripts ist es, aus einer noch intakten, alten objects.json die Skripte zu extrahieren, wenn man kein Backup hat. Um selektiv einzelne Skripte aus einem Backup einzuspielen, müsste man das Skript umschreiben, ich denke gerade über ein solches Skript(Adapter) nach, welches dann die verschiedenen Möglichkeiten nutzt... Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                                    iobroker läuft unter Docker auf QNAP TS-451+
                                    SkriptRecovery: https://forum.iobroker.net/post/930558

                                    M 1 Antwort Letzte Antwort
                                    0
                                    • F fastfoot

                                      @Markus84 sagte in js-controller Scipte retten:

                                      @paul53 Also der Vorteil ist, dass man partiell die Skripte wieder einspielen kann ohne gleich alles aus dem Backup einspielen zu müssen?

                                      JJJein. Der Sinn des Skripts ist es, aus einer noch intakten, alten objects.json die Skripte zu extrahieren, wenn man kein Backup hat. Um selektiv einzelne Skripte aus einem Backup einzuspielen, müsste man das Skript umschreiben, ich denke gerade über ein solches Skript(Adapter) nach, welches dann die verschiedenen Möglichkeiten nutzt... Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                                      M Offline
                                      M Offline
                                      Markus84
                                      schrieb am zuletzt editiert von
                                      #18

                                      @fastfoot said in js-controller Scipte retten:

                                      Die fehlende Möglichkeit, einzelne Skripte zurück zu spielen, stört mich irgendwie schon länger, aber ob es wirklich Sinn macht?

                                      Also ich war schon mehrfach in der blöden Situation, dass ich an einem Skript rumgefummelt habe, was dann gar nicht mehr funktioniert hat. Meine Lösung war dann immer (1) Backup machen, (2) altes Backup einspielen, (3) noch funktionierende Version des Skript in eine Textdatei kopieren, (4) kurz zuvor erstelltes Backup wieder herstellen und (5) das Skript von Hand wiederherstellen.

                                      Da wäre natürlich eine automatische Backuperstellung der Skripten oder noch besser eine Versionsverwaltung natürlich extrem hilfreich gewesen!

                                      1 Antwort Letzte Antwort
                                      0

                                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                      Registrieren Anmelden
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      245

                                      Online

                                      32.9k

                                      Benutzer

                                      83.0k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe