Benutzer-Werkzeuge

Webseiten-Werkzeuge


internetradio

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
internetradio [2020/11/24 15:49]
admin
internetradio [2020/11/24 16:34] (aktuell)
admin
Zeile 106: Zeile 106:
 öffnen wir die Konfigurationsdatei und ergänzen am Ende folgende Einträge öffnen wir die Konfigurationsdatei und ergänzen am Ende folgende Einträge
  
-  [music]\\  +  [music]  
-comment = Musik\\  +  comment = Musik  
-path = /music\\  +  path = /music  
-browseable = yes\\  +  browseable = yes  
-read only = no\\  +  read only = no  
-guest ok = yes\\ '' ​+  guest ok = yes 
  
 Abgespeichert wird mit Strg+S und mit Strg+X wird nano beendet. Abgespeichert wird mit Strg+S und mit Strg+X wird nano beendet.
Zeile 117: Zeile 117:
 Nun starten wir den SAMBA-Dienst neu Nun starten wir den SAMBA-Dienst neu
  
-''​sudo systemctl restart smbd''​+  ​sudo systemctl restart smbd
  
 und können nun im LAN z.B. von Windows aus über Laufwerke -> Netzlaufwerk verbinden auf die Freigabe zugreifen. und können nun im LAN z.B. von Windows aus über Laufwerke -> Netzlaufwerk verbinden auf die Freigabe zugreifen.
Zeile 125: Zeile 125:
 Zuerst fügen wir die Mopidy Quellen der Anwendungsverwaltung hinzu und installieren das Basispaket in dem wir folgende Befehle nacheinander im Terminal eingeben: Zuerst fügen wir die Mopidy Quellen der Anwendungsverwaltung hinzu und installieren das Basispaket in dem wir folgende Befehle nacheinander im Terminal eingeben:
  
-''​wget -q -O - https://​apt.mopidy.com/​mopidy.gpg | sudo apt-key add -''​+  ​wget -q -O - https://​apt.mopidy.com/​mopidy.gpg | sudo apt-key add -
  
-''​sudo wget -q -O /​etc/​apt/​sources.list.d/​mopidy.list https://​apt.mopidy.com/​buster.list''​+  ​sudo wget -q -O /​etc/​apt/​sources.list.d/​mopidy.list https://​apt.mopidy.com/​buster.list
  
-''​sudo apt-get update''​+  ​sudo apt-get update
  
-''​sudo apt-get install mopidy''​+  ​sudo apt-get install mopidy
  
 Im nun folgenden Schritt starten wir Mopidy erstmalig ​ Im nun folgenden Schritt starten wir Mopidy erstmalig ​
  
-''​mopidy''​+  ​mopidy
  
 und warten ein paar Sekunden bis die Ausgabe und warten ein paar Sekunden bis die Ausgabe
Zeile 143: Zeile 143:
 erfolgt ist um das Programm nun mit Ctrl+C wieder zu unterbrechen. Mopidy legt im Hintergrund ein paar Pfade und Dateien an, welche wir später bearbeiten. Wer später Mopidy als Service laufen lassen möchte fügt in diesem Schritt den User //mopidy// noch der Gruppe //video// hinzu. erfolgt ist um das Programm nun mit Ctrl+C wieder zu unterbrechen. Mopidy legt im Hintergrund ein paar Pfade und Dateien an, welche wir später bearbeiten. Wer später Mopidy als Service laufen lassen möchte fügt in diesem Schritt den User //mopidy// noch der Gruppe //video// hinzu.
  
-''​sudo adduser mopidy video''​+  ​sudo adduser mopidy video
  
 Damit wir Mopidy später über eine Weboberfläche (Webclients) steuern können muss diese entsprechend auch installiert sein. Ich haben mich für **Iris** und **Mobile** entschieden. Damit wir Mopidy später über eine Weboberfläche (Webclients) steuern können muss diese entsprechend auch installiert sein. Ich haben mich für **Iris** und **Mobile** entschieden.
  
-''​sudo python3 -m pip install Mopidy-Iris\\ \\  +  ​sudo python3 -m pip install Mopidy-Iris  
-sudo python3 -m pip install Mopidy-Mobile''​+  sudo python3 -m pip install Mopidy-Mobile
  
 Weitere mögliche Webclients wären //​MusicBox-Webclient//,​ //​Simple-Webclient//,​ //Moped// oder //Mopify// um nur einige zu benennen. Eine Übersicht gibt es [[https://​mopidy.com/​ext/​|hier]]. Weitere mögliche Webclients wären //​MusicBox-Webclient//,​ //​Simple-Webclient//,​ //Moped// oder //Mopify// um nur einige zu benennen. Eine Übersicht gibt es [[https://​mopidy.com/​ext/​|hier]].
Zeile 154: Zeile 154:
 Wer auf Mopidy auch mit externen MPD-Clients (z.B. ncmpcpp) zugreifen möchte sollte sich unbedingt noch //​Mopidy-MPD//​ installieren. Wer auf Mopidy auch mit externen MPD-Clients (z.B. ncmpcpp) zugreifen möchte sollte sich unbedingt noch //​Mopidy-MPD//​ installieren.
  
-''​sudo python3 -m pip install Mopidy-MPD''​\\ \\ +  ​sudo python3 -m pip install Mopidy-MPD 
 +  ​
  
 Nun können je nach Bedarf weitere Addons installiert werden: Nun können je nach Bedarf weitere Addons installiert werden:
  
-''​# Spotify support\\  +# Spotify support 
-sudo apt-get install mopidy-spotify\\ \\  +  sudo apt-get install mopidy-spotify 
-# Podcast support\\  +  ​ 
-sudo python3 -m pip install Mopidy-Podcast\\ +# Podcast support 
-sudo python3 -m pip install Mopidy-Podcast-iTunes ​\\ \\  +  sudo python3 -m pip install Mopidy-Podcast 
-# Last.FM scrobbling support\\  +  sudo python3 -m pip install Mopidy-Podcast-iTunes  
-sudo python3 -m pip install Mopidy-Scrobbler\\ \\ +# Last.FM scrobbling support 
 +  sudo python3 -m pip install Mopidy-Scrobbler
 # Soundcloud support\\ ​ # Soundcloud support\\ ​
-sudo python3 -m pip install Mopidy-SoundCloud\\ \\ +  ​sudo python3 -m pip install Mopidy-SoundCloud
 # TuneIn support\\ ​ # TuneIn support\\ ​
-sudo python3 -m pip install Mopidy-TuneIn\\ \\  +  ​sudo python3 -m pip install Mopidy-TuneIn 
-# YouTube support\\  +# YouTube support  
-sudo python3 -m pip install Mopidy-YouTube\\ \\ ''​+  sudo python3 -m pip install Mopidy-YouTube
  
 Wenn alle gewünschten Addons installiert sind bearbeiten wir nun die Konfigurationsdatei //​mopidy.conf//​. Diese liegt für den angemeldeten User im Ordner ///​home/​user/​.config/​mopidy//​ (Beispiel für pi: ///​home/​pi/​.config/​mopidy/​mopidy.conf//​). Soll Mopidy später als Service unter dem User //mopidy// laufen gilt der Pfad ///​etc/​mopidy/​mopidy.conf//​. ​ Wenn alle gewünschten Addons installiert sind bearbeiten wir nun die Konfigurationsdatei //​mopidy.conf//​. Diese liegt für den angemeldeten User im Ordner ///​home/​user/​.config/​mopidy//​ (Beispiel für pi: ///​home/​pi/​.config/​mopidy/​mopidy.conf//​). Soll Mopidy später als Service unter dem User //mopidy// laufen gilt der Pfad ///​etc/​mopidy/​mopidy.conf//​. ​
Zeile 176: Zeile 178:
 Egal für welche Variante ihr Euch entscheidet - in der mopidy.conf werden alle zentralen Einstellungen und die der Addons verwaltet. Wir öffnen die Datei mit Egal für welche Variante ihr Euch entscheidet - in der mopidy.conf werden alle zentralen Einstellungen und die der Addons verwaltet. Wir öffnen die Datei mit
  
-''​sudo nano /​etc/​mopidy/​mopidy.conf'' ​bzw. \\  ​+  ​sudo nano /​etc/​mopidy/​mopidy.conf 
 +   
 +bzw.
  
-''​sudo nano /​home/​pi/​.config/​mopidy/​mopidy.conf''​+  ​sudo nano /​home/​pi/​.config/​mopidy/​mopidy.conf
  
 Im Abschnitt [core] werden die benutzen Verzeichnisse definiert Im Abschnitt [core] werden die benutzen Verzeichnisse definiert
Zeile 184: Zeile 188:
 Wer Mopidy als Service laufen lassen möchte verwendet folgende Einstellung,​ Wer Mopidy als Service laufen lassen möchte verwendet folgende Einstellung,​
  
-''​[core]\\   +  ​[core] ​  
-cache_dir = /​var/​cache/​mopidy\\  +  cache_dir = /​var/​cache/​mopidy 
-config_dir = /etc/mopidy\\  +  config_dir = /​etc/​mopidy 
-data_dir = /​var/​lib/​mopidy\\ '' ​+  data_dir = /​var/​lib/​mopidy ​
  
 wer Mopidy als User pi startet verwendet stattdessen wer Mopidy als User pi startet verwendet stattdessen
  
-''​[core]\\  +  ​[core] 
-cache_dir = $XDG_CACHE_DIR/​mopidy\\  +  cache_dir = $XDG_CACHE_DIR/​mopidy 
-config_dir = $XDG_CONFIG_DIR/​mopidy\\  +  config_dir = $XDG_CONFIG_DIR/​mopidy 
-data_dir = $XDG_DATA_DIR/​mopidy\\ '' ​+  data_dir = $XDG_DATA_DIR/​mopidy
  
 in beiden Varianten gefolgt von  in beiden Varianten gefolgt von 
  
-''​max_tracklist_length = 10000\\  +  ​max_tracklist_length = 10000 
-restore_state = false\\ '' ​+  restore_state = false 
  
 Alle weiteren Einstellungen am besten so wie bei mir übernehmen. Alle weiteren Einstellungen am besten so wie bei mir übernehmen.
  
-''​[logging]\\  +  ​[logging]  
-verbosity = 1\\  +  verbosity = 1  
-format = %(levelname)-8s %(asctime)s [%(process)d:​%(threadName)s] %(name)s\n ​ %(message)s\\  +  format = %(levelname)-8s %(asctime)s [%(process)d:​%(threadName)s] %(name)s\n ​ %(message)s 
-color = true\\ '' ​+  color = true  
 +   
 +  [audio] 
 +  mixer = software  
 +  mixer_volume = 90  
 +  output = autoaudiosink  
 +  buffer_time = 1000 
 +   
 +Wer später den Sound von Mopidy zusätzlich noch an einen Streamingserver (z.B. Icecast) ausgeben will verwendet in der Zeile //output = // folgende Parameter:
  
-''​[audio]\\  +  ​output = tee name=t ! queue ! audioresample ! autoaudiosink ​t. ! queue ! lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=yxasqw123EDC  ​
-mixer = software\\  +
-mixer_volume = 90\\  +
-output = autoaudiosink\\  +
-buffer_time ​1000\\ '' ​+
  
-''​[local]\\ ​ 
-media_dir = /music\\ '' ​ 
  
-''​[file]\\  +  [local] 
-enabled = true\\  +  media_dir = /music 
-media_dirs = /music\\  +   
-excluded_file_extensions =\\  +  ​[file] 
-  .directory\\  +  enabled = true  
-  .html\\  +  media_dirs = /music  
-  .jpeg\\  +  excluded_file_extensions =  
-  .jpg\\  +  .directory  
-  .log\\  +  .html  
-  .nfo\\  +  .jpeg 
-  .pdf\\  +  .jpg  
-  .png\\  +  .log 
-  .txt\\  +  .nfo 
-  .zip\\  +  .pdf 
-show_dotfiles = false\\  +  .png 
-follow_symlinks = false\\  +  .txt 
-metadata_timeout = 1000\\ '' ​ +  .zip  
- +  show_dotfiles = false 
-''​[http]\\  +  follow_symlinks = false 
-enabled = true\\  +  metadata_timeout = 1000  
-hostname = 0.0.0.0\\  +   
-port = 6680\\  +  [http]  
-zeroconf = Mopidy HTTP server on $hostname\\  +  enabled = true 
-csrf_protection = true\\  +  hostname = 0.0.0.0 
-default_app = mopidy\\ '' ​+  port = 6680 
 +  zeroconf = Mopidy HTTP server on $hostname 
 +  csrf_protection = true 
 +  default_app = mopidy 
 +   
 +  [mpd]  
 +  enabled = true 
 +  hostname = 0.0.0.0 
 +  port = 6600 
 +  password = 
 +  max_connections = 20 
 +  connection_timeout = 60 
 +  zeroconf = Mopidy MPD server on $hostname 
 +  command_blacklist = 
 +    listall 
 +    listallinfo 
 +  default_playlist_scheme = m3u
  
-''​[mpd]\\  +  ​[m3u
-enabled = true\\  +  enabled = true 
-hostname ​0.0.0.0\\ ​ +  ​base_dir ​/music 
-port 6600\\ ​ +  ​default_encoding ​latin-1 
-password ​=\\  +  ​default_extension ​.m3u8 
-max_connections = 20\\  +  ​playlists_dir ​/​music/​playlists
-connection_timeout = 60\\  +
-zeroconf = Mopidy MPD server on $hostname\\  +
-command_blacklist =\\  +
-  ​listall\\  +
-  listallinfo\\  +
-default_playlist_scheme ​m3u\\ '' ​+
  
-''​[m3u]\\  +  ​[softwaremixer
-enabled = true\\  +  enabled = true
-base_dir = /music\\  +
-default_encoding = latin-1\\  +
-default_extension = .m3u8\\  +
-playlists_dir = /​music/​playlists\\ '' ​+
  
-''​[softwaremixer]\\  +  ​[tunein] 
-enabled = true\\ ''​  +  enabled = true 
- +  timeout = 5000
-''​[tunein]\\  +
-enabled = true\\  +
-timeout = 5000\\ '' ​+
  
 Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die //​client_id//​ und das //​client_secret//​ bekommt ihr [[https://​auth.mopidy.com/​spotify/​|hier]]. Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die //​client_id//​ und das //​client_secret//​ bekommt ihr [[https://​auth.mopidy.com/​spotify/​|hier]].
  
-''​[spotify]\\  +  ​[spotify]  
-enabled = true\\  +  enabled = true 
-username = DEIN_SPOTIFY_USERNAME\\  +  username = DEIN_SPOTIFY_USERNAME 
-password = DEIN_SPOTIFY_PASSWORT\\  +  password = DEIN_SPOTIFY_PASSWORT 
-client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\  +  client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
-client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\  +  client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
-bitrate = 160\\  +  bitrate = 160 
-volume_normalization = true\\  +  volume_normalization = true 
-private_session = false\\  +  private_session = false 
-timeout = 10\\  +  timeout = 10 
-allow_cache = true\\  +  allow_cache = true 
-allow_network = true\\  +  allow_network = true 
-allow_playlists = true\\  +  allow_playlists = true 
-search_album_count = 20\\  +  search_album_count = 20 
-search_artist_count = 10\\  +  search_artist_count = 10 
-search_track_count = 50\\  +  search_track_count = 50 
-toplist_countries =\\ '' ​+  toplist_countries =
  
 Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir [[https://​secure.soundcloud.com/​connect?​client_id=93e33e327fd8a9b77becd179652272e2&​scope=non-expiring&​response_type=code_and_token&​redirect_uri=https://​www.mopidy.com/​soundcloud_callback|hier]] bekommen. Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir [[https://​secure.soundcloud.com/​connect?​client_id=93e33e327fd8a9b77becd179652272e2&​scope=non-expiring&​response_type=code_and_token&​redirect_uri=https://​www.mopidy.com/​soundcloud_callback|hier]] bekommen.
  
-''​[soundcloud]\\  +  ​[soundcloud]  
-enabled = true\\  +  enabled = true  
-explore_songs = 25\\  +  explore_songs = 25  
-auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx\\ '' ​+  auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx
  
 Für den Zugriff auf Last.FM genügen Benutzername und Passwort. Für den Zugriff auf Last.FM genügen Benutzername und Passwort.
  
-''​[scrobbler]\\  +  ​[scrobbler] 
-enabled = true\\  +  enabled = true 
-username = DEIN_LASTFM_USERNAME\\  +  username = DEIN_LASTFM_USERNAME 
-password = DEIN_LASTFM_PASSWORT\\ '' ​+  password = DEIN_LASTFM_PASSWORT ​
  
 Etwas komplizierter wird es bei Youtube. Hierfür benötigen wir einen //​youtube_api_key//​. Eine einfaches Videotutorial wie man diesen erstellt bzw. bekommt gibt es [[https://​youtu.be/​ozOmQGDVwKQ|hier]]. Etwas komplizierter wird es bei Youtube. Hierfür benötigen wir einen //​youtube_api_key//​. Eine einfaches Videotutorial wie man diesen erstellt bzw. bekommt gibt es [[https://​youtu.be/​ozOmQGDVwKQ|hier]].
  
-''​[youtube]\\  +  ​[youtube]  
-enabled = true\\  +  enabled = true 
-youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\  +  youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  
-api_enabled = false\\  +  api_enabled = false 
-threads_max = 16\\  +  threads_max = 16 
-search_results = 15\\  +  search_results = 15 
-playlist_max_videos = 20\\ ''​+  playlist_max_videos = 20
  
 Nun werden noch die Podcast-Quellen eingerichtet. Die Datei //​podcasts.opml//​ ist eine XML-Datei welche in meinem Beispiel im Ordner ///​music/​podcasts//​ liegt. Diese kann man ganz leicht selbst erstellen oder z.B. in iTunes erzeugen. Nun werden noch die Podcast-Quellen eingerichtet. Die Datei //​podcasts.opml//​ ist eine XML-Datei welche in meinem Beispiel im Ordner ///​music/​podcasts//​ liegt. Diese kann man ganz leicht selbst erstellen oder z.B. in iTunes erzeugen.
  
-''​[podcast]\\  +  ​[podcast]  
-enabled = true\\  +  enabled = true 
-browse_root = /​music/​podcasts/​podcasts.opml\\  +  browse_root = /​music/​podcasts/​podcasts.opml 
-browse_order = desc\\  +  browse_order = desc 
-lookup_order = asc\\  +  lookup_order = asc 
-cache_size = 64\\  +  cache_size = 64 
-cache_ttl = 86400\\  +  cache_ttl = 86400\\  
-timeout = 10\\ '' ​+  timeout = 10\\ '' ​
  
 Noch einfacher geht es bei diesem Addon. Hier übernimmt Apple die Verwaltung des Podcast-Verzeichnisse und sortiert dieses für uns nach Genres. Da das Verzeichnis öffentlich ist wird auch keine weitere Authentifizierung benötigt. Noch einfacher geht es bei diesem Addon. Hier übernimmt Apple die Verwaltung des Podcast-Verzeichnisse und sortiert dieses für uns nach Genres. Da das Verzeichnis öffentlich ist wird auch keine weitere Authentifizierung benötigt.
  
-''​[podcast-itunes]\\  +  ​[podcast-itunes] 
-enabled = true\\  +  enabled = true 
-base_url = http://​itunes.apple.com/​\\  +  base_url = http://​itunes.apple.com/​ 
-country = DE\\  +  country = DE 
-explicit = Yes\\  +  explicit = Yes 
-charts = audioPodcasts\\  +  charts = audioPodcasts 
-charts_limit = 20\\  +  charts_limit = 20 
-search_limit = 20\\  +  search_limit = 20 
-timeout = 10\\  +  timeout = 10 
-retries = 3\\ '' ​+  retries = 3
  
 Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von
  
-''​mopidy''​+  ​mopidy
  
 starten. Möchtet ihr Mopidy als Service starten bzw. später beim Hochfahren des RaspberryPis starten lassen so müssen wir es zunächst in die Liste der Systemdienste aufnehmen. Das geschieht ganz einfach mit starten. Möchtet ihr Mopidy als Service starten bzw. später beim Hochfahren des RaspberryPis starten lassen so müssen wir es zunächst in die Liste der Systemdienste aufnehmen. Das geschieht ganz einfach mit
  
-''​sudo systemctl enable mopidy''​+  ​sudo systemctl enable mopidy
  
 Danach können wir Mopidy mit  Danach können wir Mopidy mit 
  
-''​sudo systemctl start mopidy''​+  ​sudo systemctl start mopidy
  
 starten. Das Programm läuft nun als Prozess im Hintergrund. starten. Das Programm läuft nun als Prozess im Hintergrund.
Zeile 374: Zeile 383:
 Die Installation wird mit  Die Installation wird mit 
  
-''​sudo apt-get install ncmpcpp''​+  ​sudo apt-get install ncmpcpp
  
 gestartet und das war es auch schon. Wichtig ist, dass //​Mopidy-MPD//​ installiert und der entsprechende Konfigurationsabschnitt in der //​mopidy.conf//​ vorhanden ist. Eine Übersicht der Tastaturbelegung findet ihr {{ :​ncmpcpp_cheat_sheet.pdf | hier}}. gestartet und das war es auch schon. Wichtig ist, dass //​Mopidy-MPD//​ installiert und der entsprechende Konfigurationsabschnitt in der //​mopidy.conf//​ vorhanden ist. Eine Übersicht der Tastaturbelegung findet ihr {{ :​ncmpcpp_cheat_sheet.pdf | hier}}.
 +
 +==== Voreingestellte Playlist beim Start ====
 +
 +Betreibt man seine Mopidy-Server "​headless",​ also ohne angeschlossene Tastatur oder Monitor, so lässt sich mit diesem Plugin eine Default-Playlist setzen. Diese wird beim Start automatisch abgespielt. In meinem Fall ist es eine Playlist vordefinierter Radiosender mit dem Namen //​Radio-Favoriten//​.
 +
 +Installiert wird das Plugin mit
 +
 +  sudo python3 -m pip install Mopidy-DefaultPlaylist
 +  ​
 +Der entsprechende Abschnitt in der mopidy.conf sieht dann so aus
 +
 +  [defaultplaylist]
 +  enabled = true
 +  defaultplaylist_name = Radio-Favoriten
 +  autoplay = true
 +  shuffle = true
 +
 +Die Option //shuffle =// sorgt dafür das bei jedem Neustart ein anderer Sender abgespielt wird.
  
  
Zeile 383: Zeile 410:
 Um noch weitere Clients im LAN (oder wahlweise auch weltweit) mit Musik zu versorgen kann man zusätzlich noch einen Streamingserver aufsetzen. Dieser läuft parallel zu //Mopidy// und stellt für angeschlossene Geräte einen MP3-Stream bereit. Um noch weitere Clients im LAN (oder wahlweise auch weltweit) mit Musik zu versorgen kann man zusätzlich noch einen Streamingserver aufsetzen. Dieser läuft parallel zu //Mopidy// und stellt für angeschlossene Geräte einen MP3-Stream bereit.
  
-''​sudo apt-get install icecast2''​+  ​sudo apt-get install icecast2
  
  
internetradio.1606229395.txt.gz · Zuletzt geändert: 2020/11/24 15:49 von admin