Jump to content

TUTORIAL Entwickler Informationen zur DR!FT Community API


Recommended Posts

Bitte melde dich an um den Link zu sehen.

so etwas in der Richtung hatte ich auch schon überlegt, bin dann aber leider nicht mehr so weit gekommen bzw hab mich fokussieren müssen. Raspi hab ich hier auch rumliegen. Halt mich gerne auf dem Laufenden was das angeht!

Link to comment
Share on other sites

Örgs ... habe jetzt ne Stunde lang den alten Raspi aktualisiert (apt-get upgrade dauert ewig aufm Zero).

 

Docker bekommt man danach recht schnell drauf: https://www.blog.berrybase.de/blog/2022/02/23/docker-auf-dem-raspberry-pi-basics/ 

Dein Cabinet von Github hab ich manuell entpackt und rübergeschoben. Allerdings rennt der docker compose recht schnell in einen Fehler: 

Please log in to see the images

Da ich mich mit Docker nicht ernsthaft auskenne, hat's jetzt ziemlich lange gedauert, bis ich in die compose.yml reingeschnuppert habe. Die MongoDB (Zeile 34 driftapi-db) ist das Problem ... gibts nicht für 32 bit Architektur (https://www.mongodb.com/community/forums/t/mongodb-raspberry-pi-4-docker-image/2162/3).

Für heute komme ich nicht weiter, habe jetzt mal einen neueren Raspi bestellt.

Falls jemand mitmacht, hier ist die Kompatibilitätsliste für das 64 Bit OS: https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/

 

    

  • Like 1
Link to comment
Share on other sites

vor 3 Stunden schrieb Foox:

Cool ... probiere ich am Wochenende mal aus. Hab jetzt doch angefangen mit dem Raspi. Wenn das geht könnte man damit recht einfach einen portablen Gameserver bauen, den man ohne viel Gedöns zum Treffen mitnehmen kann. Hübsch konfiguriert würde der einen Wlan für die teilnehmenden Handys aufspannen und soweit ich es von hier umreisse, müsste man den Startup usw skripten können, so dass man die Kiste dann headless vom Handy aus bedienen kann.

 

PS: Habe schon lange nicht mehr mit so einem debil glücklichen Grinsen vorm Rechner gesessen. 😉 

Geht mir ähnlich. Umso fetter das Grinsen, wenn man " es" nach 20 Jahren Abstinenz doch noch kann.

(Eigenen Server aufgesetzt)

Please log in to see the images

  • Like 3
Link to comment
Share on other sites

Bitte melde dich an um den Link zu sehen.

 Man könnte auf dem raspi auch einfach git installieren und das projekt darüber von github runterladen (git clone ...). Dadurch kann man es später auch einfacher updaten.

Grundsätzlich ist MongoDB nicht unbedingt die beste Datenbank für die Art von Daten, aber soe hilft sehr dabei, schnell neue Konzepte und Datenmodelle zu etablieren und daher beim Prototyping. Nen richtig schönes Webportal wäre aber schöner, das könnte man ja auch noch lokal aufsetzen, aber das würde es für viele Spieler noch einfacher machen.

Link to comment
Share on other sites

Posted (edited)

Hallo liebe Dr!ft-Community,

ich bin eigentlich eher ein stilles Mitglied, aber doch schon jetzt länger dabei.

Das Projekt verleitet mich jetzt etwas aus meiner Haut zu gehen und etwas aktiver zu werden.

Ich habe da gleich mal eine Frage zum Docker Container.

Wäre es nicht einfacher die Images gleich auf  der Docker Registry (Docker Hub) zu publishen?

Da müsste man diese nicht erst selbst bauen. Und ich kann Sie auch gleich auf meiner NAS starten ohne die dies über SSH zu starten. 🙂

Sonst tolle Arbeit und ein wichtiger Schritt in die richtige Richtung!

Viele Grüße!

Steve

Edited by Dragonheart83
  • Like 3
Link to comment
Share on other sites

Bitte melde dich an um den Link zu sehen.

 

Bitte melde dich an um den Link zu sehen.

 Könnt ihr eine Tabelle mit allen Modellen, Motoren und Tunings bereitstellen, so dass man auch auf alle Fahrzeugmodelle und Varianten reagieren kann? Anbei mal ein Beispiel was ich mir da so vorstelle.

Please log in to see the images

Link to comment
Share on other sites

Posted (edited)

Bitte melde dich an um den Link zu sehen.

das ist absichtlich als offener String formuliert, weil man sonst immer bei einem neuen Release das Datenmodell der App anpassen müsste, oder eben diese Tabelle. Wir könnten aber als Community versuchen die Tabelle zu erstellen, wir müssten ja alle Fahrzeuge haben 😉

Bzw das Modell selbst gibts nicht, aber ich hab da mal was gemacht, müssten wir nur mal überprüfen ob die Strings für die Motoren und Tunings hinten stimmen:

https://docs.google.com/spreadsheets/d/1qVbCz_XAFfcknnZy1WTwsLsQwQ6Vp6zKvinG_LH6-Hc/edit?usp=sharing

(Tabelle ist bearbeitbar, Änderungen können aber nachvollzogen werden)

 

Edited by Decrayer
  • Thanks 1
Link to comment
Share on other sites

Bitte melde dich an um den Link zu sehen.

 Ich nehme mal an, dass die Werte für „Motorsetup“ in der C-API als „tuning_type“ via dem enter-Event übergeben werden. 
Dann habe ich mal noch eine Spalte „engine_type“ hinzugefügt und mal für den DTM Benz den Wert eingetragen, die ebenfalls mit dem enter-Event übergeben wird. 
 

Die Werte werden dann halt wichtig, wenn man einen sehr spezifischen Lauf mit „dem Auto“ und „dem Tuning“ fahren möchte um dies bereits in der Lobby verifizieren möchte. 

Link to comment
Share on other sites

Posted (edited)

Bitte melde dich an um den Link zu sehen.

 ja, die Werte in der Tabelle habe ich vor nem halben Jahr mal einfach aus der App abgeschrieben, deshalb wäre es gut, wenn wir systematisch die tatsächlich beim enter-event genutzten Bezeichner in der Tabelle sammeln (deshalb ist die auch editierbar). Das Ding ist halt, dass diese nicht eine geschlossene Menge sind, sondern wenn neue Modelle rauskommen, auch Neue dazu kommen. Deshalb habe ich die nicht fest ins Datenmodell rein kodiert, so etwas muss man über ein erweitertes Datenmodell machen, in dem man die Motoren idealerweise auch noch in weitere Klassen unterteilt (Front/Heckantrieb, Leistungsklassen was die PS-Zahl angeht, CLUBSPORT). Die Liste die ich gepostet habe ist aber denke ich nen guter Anfang, ich muss noch den MAHLE komplett als eigenständiges Auto eintragen, da hab ich bisher nur die Sonderkonfiguration drin.

Edit: Hab den Mahle jetzt eingetragen und auch mal geschaut, was ankommt wenn ich den Turbo Motor rein haue. D1 mit V8 und V12 hab ich auch eingetragen, genau so den BMW DTM Motor.

Edited by Decrayer
  • Like 1
Link to comment
Share on other sites

Posted (edited)
vor 15 Stunden schrieb Decrayer:

Bitte melde dich an um den Link zu sehen.

 Man könnte auf dem raspi auch einfach git installieren und das projekt darüber von github runterladen (git clone ...). Dadurch kann man es später auch einfacher updaten.

Grundsätzlich ist MongoDB nicht unbedingt die beste Datenbank für die Art von Daten, aber soe hilft sehr dabei, schnell neue Konzepte und Datenmodelle zu etablieren und daher beim Prototyping. Nen richtig schönes Webportal wäre aber schöner, das könnte man ja auch noch lokal aufsetzen, aber das würde es für viele Spieler noch einfacher machen.

So, neuer Pi4 liegt vor mir. PiOS in der 64 Bit Version ist auf der Karte und die Kiste läuft. Der o.g. Fehler beim "docker compose" tritt nicht mehr auf, das Problem mit MongoDB ist erstmal gelöst.

Nach einigen Minuten  im Compose Prozess kommt die nächste Fehlermeldung (siehe Screenshot). Ich sehe die Ursache hier in driftapi-main\driftapi\Dockerfile:

# build the actual image with just Python + PIP
FROM tiangolo/uvicorn-gunicorn:python3.8-slim
COPY --from=builder /app/dist/driftapi*.whl ./whl/
RUN pip3 install ./whl/*

Wenn ich es richtig verstehe, bedienst du dich in dem Schritt hier: https://hub.docker.com/r/tiangolo/uvicorn-gunicorn/

Aber was mir im folgenden Schritt (COPY) unklar ist: Wo ziehst du den whl-Ordner her und was ist da alles drin? Ist der das Ergebnis der vorhergehenden Sektion, wo das wheel gebaut wird? 

Ich vermute, dass daraus abzuleiten wäre, weshalb der "pip3 install" danach auf die Bretter geht. 

 

EDIT sagt: Hast du eine Idee was es mit der gelben Zeile im Screenshot auf sich hat? Er scheint ja bereits bei der installation anderer Pakete auszusteigen!?

 

Danke!

 

Please log in to see the images

Edited by Foox
Link to comment
Share on other sites

Posted (edited)

Bitte melde dich an um den Link zu sehen.

hattest du das mal unter linux aufgesetzt gehabt ? weil bei mir nimmt er den docker command nicht und wenn ich normal gebuilded habe hat er den racedisplay-service: container nicht mit gestartet. erst nachdem ich das profile racedisplay-service: in der compose auskommentiert habe bzw den build und nicht das image benutzt habe hat es funktioniert .den command docker compose --profile racedisplay up --build gibt es nicht unter linux . hab es auf meinen windows nicht ausprobiert aber linux hatte es mit der doku vom github so nicht funktioniert.

 

danach ganz normal "docker-compose build" und "docker-compose up -d"

 

Edited by Skorpion_1988
Link to comment
Share on other sites

vor 11 Minuten schrieb Foox:

So, neuer Pi4 liegt vor mir. PiOS in der 64 Bit Version ist auf der Karte und die Kiste läuft. Der o.g. Fehler beim "docker compose" tritt nicht mehr auf, das Problem mit MongoDB ist erstmal gelöst.

Nach einigen Minuten  im Compose Prozess kommt die nächste Fehlermeldung (siehe Screenshot). Ich sehe die Ursache hier in driftapi-main\driftapi\Dockerfile:

# build the actual image with just Python + PIP
FROM tiangolo/uvicorn-gunicorn:python3.8-slim
COPY --from=builder /app/dist/driftapi*.whl ./whl/
RUN pip3 install ./whl/*

Wenn ich es richtig verstehe, bedienst du dich in dem Schritt hier: https://hub.docker.com/r/tiangolo/uvicorn-gunicorn/

Aber was mir im folgenden Schritt (COPY) unklar ist: Wo ziehst du den whl-Ordner her und was ist da alles drin? Ist der das Ergebnis der vorhergehenden Sektion, wo das wheel gebaut wird? 

Ich vermute, dass daraus abzuleiten wäre, weshalb der "pip3 install" danach auf die Bretter geht. 

Please log in to see the images

Bitte melde dich an um den Link zu sehen.

Das ist in dem Fall ein zweistufiger Buildprozess, bei dem erst in einem container alles zusammen gebaut wird und nachher, quasi fürs deployment, ein schlankerer Container aufgesetzt wird, der vom vorherigen nur das gebaute wheel (whl) kopiert, aber nicht die ganze Umgebung besitzt die man fürs bauen braucht, sondern nur das nötigste.

Link to comment
Share on other sites

vor 10 Minuten schrieb Skorpion_1988:

den command docker compose --profile racedisplay up --build gibt es nicht unter linux

stehst du auf dem richtigen Ordner? Es muss der sein, in dem die docker-compose.yml liegt.

Bei mir läuft der compose Prozess damit los, allerdings mit den o.g. Fehlern.

Link to comment
Share on other sites

Posted (edited)

könnt ihr beide mal schauen, welche docker version ihr da benutzt bzw ob die aktuell ist? Auf älteren gibt es diese Befehle teilweise noch nicht die ich da benutze.

Bitte melde dich an um den Link zu sehen.

Nein, unter linux habe ich das nicht getestet, hatte da aber bisher eher weniger Probleme als unter Windows.

Edited by Decrayer
Link to comment
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.

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.

 Share

×
×
  • Create New...

Important Information

In order to optimize our website for you and to continuously improve it, we use cookies. By continuing to use the website, you consent to the use of cookies. Further information on cookies can be found in our Privacy Policy