Luke 37156 Posted February 27, 2014 Author Share Posted February 27, 2014 sure. logs never hurt. Link to comment Share on other sites More sharing options...
smitopher 19 Posted February 27, 2014 Share Posted February 27, 2014 Here tis. From initial startup. server-63529047905.log.zip Link to comment Share on other sites More sharing options...
Guest scokar Posted March 1, 2014 Share Posted March 1, 2014 Pokorra's mono build is at version 3.2.8. Patching for servicestack may no longer be necessary. Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 1, 2014 Author Share Posted March 1, 2014 Pokorra's mono build is at version 3.2.8. Patching for servicestack may no longer be necessary. What's your experience level with this? Are you interested in doing any dev work related to the mono port? Link to comment Share on other sites More sharing options...
dantheman 2 Posted March 5, 2014 Share Posted March 5, 2014 I just tested the most recent build posted in this thread with embedded Mono in an Ubuntu 13.10 64bit virtual machine. I installed libgdiplus from the Ubuntu repositories using apt-get. The metadata and artwork weren't loading, and I occasionally received errors. I took a look at the log, and the error seems to be: InnerException: System.DllNotFoundException /usr/lib64/libgdiplus.so I read that Debian/Ubuntu removed lib32/lib64. The path in my installation is /usr/lib/libgdiplus.so. Not sure if this matters for the future... just thought I'd point it out. Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 5, 2014 Author Share Posted March 5, 2014 I just tested the most recent build posted in this thread with embedded Mono in an Ubuntu 13.10 64bit virtual machine. I installed libgdiplus from the Ubuntu repositories using apt-get. The metadata and artwork weren't loading, and I occasionally received errors. I took a look at the log, and the error seems to be: InnerException: System.DllNotFoundException /usr/lib64/libgdiplus.so I read that Debian/Ubuntu removed lib32/lib64. The path in my installation is /usr/lib/libgdiplus.so. Not sure if this matters for the future... just thought I'd point it out. Did you see this? http://mediabrowser.tv/community/index.php?/topic/3634-linux-os-x-server/?p=57993 Link to comment Share on other sites More sharing options...
dantheman 2 Posted March 6, 2014 Share Posted March 6, 2014 (edited) Did you see this? http://mediabrowser.tv/community/index.php?/topic/3634-linux-os-x-server/?p=57993 Yes, I was able to improve the situation using symlinks to link /usr/lib64/libgdiplus.so to /usr/lib/libgdiplus.so which I saw Abeloin mention later. Thanks. Edited March 6, 2014 by dantheman 1 Link to comment Share on other sites More sharing options...
hooraysimpsons 0 Posted March 8, 2014 Share Posted March 8, 2014 I'm excited that people are working on expanding options for operating system, I appreciate the efforts. My question: what TV backend is being planned for the linux based server? Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 8, 2014 Share Posted March 8, 2014 Well, I re-initialized my Fedora server from scratch (this is a testing machine of course) and installed Fedora 19 minimal, Webmin, Amahi Home Server and "mono-opt libgdiplus-opt" from pokorra repo. I updated my .bash.profile to have . /opt/mono/env.sh so pokorra repo Mono can be found. Checking Mono I get [smitopher@localhost ~]$ mono -V Mono JIT compiler version 3.2.8 (tarball Thu Feb 20 17:33:58 UTC 2014) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen [smitopher@localhost ~]$ So, pokorra repo now installs 3.2.8 where I think you have 3.2.7, am I understanding correctly? Anyway, I download and unzip MB3 for Mono and try to run it and get [smitopher@localhost MBServer]$ mono MediaBrowser.Server.Mono.exe Info, Main, Media Browser Server started Info, Main, Command line: /home/smitopher/MBServer/MediaBrowser.Server.Mono.exe Info, Main, Server: localhost.localdomain Info, Main, Operating system: Unix 3.13.5.101 appHost.Init Info, App, Application Configuration: {"WeatherUnit":"Fahrenheit","EnableHttpLevelLogging":true,"EnableUPnP":true,"HttpServerPortNumber":8096,"LegacyWebSocketPortNumber":8945,"EnableInternetProviders":true,"SeasonZeroDisplayName":"Specials","MetadataRefreshDays":30,"SaveLocalMeta":false,"RefreshItemImages":false,"PreferredMetadataLanguage":"en","MetadataCountryCode":"US","SortReplaceCharacters":[".","+","%"],"SortRemoveCharacters":[",","&","-","{","}","'"],"SortRemoveWords":["the","a","an"],"ShowLogWindow":false,"RecentItemDays":10,"MinResumePct":5,"MaxResumePct":90,"MinResumeDurationSeconds":300,"RealtimeWatcherDelay":20,"EnableDashboardResponseCaching":true,"ManualLoginClients":[],"EnableTvDbUpdates":false,"EnableTmdbUpdates":false,"EnableFanArtUpdates":false,"ImageSavingConvention":"Compatible","EnablePeoplePrefixSubFolders":true,"MediaEncodingQuality":"Auto","AllowVideoUpscaling":false,"EnableMovieChapterImageExtraction":true,"EnableEpisodeChapterImageExtraction":false,"EnableOtherVideoChapterImageExtraction":false,"MetadataOptions":[{"ItemType":"Book","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicAlbum","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicArtist","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Season","ImageOptions":[{"Type":"Backdrop","Limit":0,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]}],"EnableDebugEncodingLogging":false,"EnableAutomaticRestart":true,"TvFileOrganizationOptions":{"IsEnabled":false,"MinFileSizeMb":50,"LeftOverFileExtensionsToDelete":[],"WatchLocations":[],"SeasonFolderPattern":"Season %s","SeasonZeroFolderName":"Season 0","EpisodeNamePattern":"%sn - %sx%0e - %en.%ext","MultiEpisodeNamePattern":"%sn - %sx%0e-x%0ed - %en.%ext","OverwriteExistingEpisodes":false,"DeleteEmptyFolders":false,"CopyOriginalFile":false},"LiveTvOptions":{},"EnableRealtimeMonitor":true,"PathSubstitutions":[],"EnableDebugLevelLogging":false,"EnableAutoUpdate":true,"SystemUpdateLevel":"Release","LogFileRetentionDays":3,"RunAtStartup":false,"IsStartupWizardCompleted":false} Info, App, Loading MediaBrowser.Api, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.WebDashboard, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Model, Version=3.0.5180.21468, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Controller, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Providers, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common.Implementations, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Implementations, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Dlna, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.IsoMounting.Linux, Version=1.0.5131.24779, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Mono, Version=3.0.5180.21473, Culture=neutral, PublicKeyToken=null Info, App, Version 3.0.5180.21473 initializing Info, SqliteUserRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/users.db Info, SqliteItemRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/chapters.db Info, SqliteItemRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/mediainfo.db Info, SqliteFileOrganizationRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/fileorganization.db Error, Main, UnhandledException One or more errors occured System.AggregateException at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[MediaBrowser.ServerApplication.FFMpeg.FFMpegInfo].Start[<GetFFMpegInfo>c__asyncD] (MediaBrowser.ServerApplication.FFMpeg.<GetFFMpegInfo>c__asyncD& stateMachine) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloader.GetFFMpegInfo (IProgress`1 progress) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.ApplicationHost+<RegisterMediaEncoder>c__async2.MoveNext () [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for MediaBrowser.ServerApplication.FFMpeg.PlatformDetection at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo.ffmpegOsType (System.String arg) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo..cctor () [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for Mono.Unix.Native.Syscall at MediaBrowser.ServerApplication.FFMpeg.PlatformDetection..cctor () [0x00000] in <filename unknown>:0 InnerException: System.DllNotFoundException libMonoPosixHelper.so at (wrapper managed-to-native) Mono.Unix.Native.Syscall:get_at_fdcwd () at Mono.Unix.Native.Syscall..cctor () [0x00000] in <filename unknown>:0 UnhandledException One or more errors occured System.AggregateException at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[MediaBrowser.ServerApplication.FFMpeg.FFMpegInfo].Start[<GetFFMpegInfo>c__asyncD] (MediaBrowser.ServerApplication.FFMpeg.<GetFFMpegInfo>c__asyncD& stateMachine) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloader.GetFFMpegInfo (IProgress`1 progress) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.ApplicationHost+<RegisterMediaEncoder>c__async2.MoveNext () [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for MediaBrowser.ServerApplication.FFMpeg.PlatformDetection at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo.ffmpegOsType (System.String arg) [0x00000] in <filename unknown>:0 at MediaBrowser.ServerApplication.FFMpeg.FFMpegDownloadInfo..cctor () [0x00000] in <filename unknown>:0 InnerException: System.TypeInitializationException An exception was thrown by the type initializer for Mono.Unix.Native.Syscall at MediaBrowser.ServerApplication.FFMpeg.PlatformDetection..cctor () [0x00000] in <filename unknown>:0 InnerException: System.DllNotFoundException libMonoPosixHelper.so at (wrapper managed-to-native) Mono.Unix.Native.Syscall:get_at_fdcwd () at Mono.Unix.Native.Syscall..cctor () [0x00000] in <filename unknown>:0 I guess I can try installing the pokorra mono rpm you have posted at the beginning of this thread? Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 8, 2014 Share Posted March 8, 2014 well well well... looking back at the start of the thread, I noticed I did not install mono-opt-devel yum'ed it in and... ta da... it starts Link to comment Share on other sites More sharing options...
chuga 4 Posted March 8, 2014 Share Posted March 8, 2014 Hi What is the recommended distribution (s) for mb3? I plan on trying unraid v6 soon, and running mb3 in a vm of some other distribution Thanks Chuga Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 well well well... looking back at the start of the thread, I noticed I did not install mono-opt-devel yum'ed it in and... ta da... it starts would you be willing to document all of your install steps from start to finish? we are hoping to get the builds up on the website soon but first we need to understand all of the requirements. Thanks. Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 (edited) would you be willing to document all of your install steps from start to finish? we are hoping to get the builds up on the website soon but first we need to understand all of the requirements. Thanks. I want to help. To have as good a story as you have with the windows server, I think that Mono 3.x needs to be generally available from the main Linux distros repositories. Now, it is 2.something. It was many iterations and a large bit of fumbling around before I felt comfortable with having an appropriate Mono installation and it is still not generic. For general release of MB3 Server on Mono, The minimum required Mono should be installable with apt-get in Ubuntu or yum in Fedora. Then the MB3 team can host both a yum and apt-get repository, or even better, be the MB3 maintainer for the official Ubuntu and Fedora repositories. Then MB3 would be available in the standard package managers with built in gui tools that allow end users to maintain their MB3 installation in the same standard and officially sanctioned repositories. You can install XBMC for Ubuntu directly from the Ubuntu Software Manager. Your licence would need to be compatible with whatever are the GPL requirements of the Linux distro. The next "requirement" that I see is, when installing MB3 with yum or apt-get, it should directly install as a daemon. I'm not sure if a daemon can throw up a browser to run the initial setup wizard so a good install story is needed there. My server is headless. I connect to it with an ssh console and run everything from a command line. I have not tried running MB3 as a daemon, only in the console and so only by seeing the http url in the console was I able to complete the first time setup wizard. Once you can install from a yum or apt-get repository, then you have a good Linux story. Edited March 9, 2014 by smitopher 1 Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 (edited) OK, starting with a minimal Fedora 19 installation. First step is getting Mono. I had the easiest time with Mono 3.x repository maintained by Timotheus Pokorra here http://www.pokorra.de/2013/12/easy-installation-of-current-mono-and-monodevelop-for-all-major-linux-distributions/ The description of the Pokorra repository is here: http://www.pokorra.de/2013/12/easy-installation-of-current-mono-and-monodevelop-for-all-major-linux-distributions/ For Fedora http://software.opensuse.org/download/package?project=home:tpokorra:mono&package=mono-opt For Ubuntu http://software.opensuse.org/download/package?project=home:tpokorra:mono&package=mono-opt I installed on Fedora 19. After adding the appropriate repository, I installed Mono with yum with the 3 following commands. sudo yum install mono-opt sudo yum install mono-opt-devel sudo yum install mono-libgdiplus-opt next, since Pokorra's repository is NOT "official", he chose to have it install in a non-standard location so not to conflict with the "official" Mono. He provides a script that tells your computer where to find Mono. . /opt/mono/env.sh After running this script, this lasts as long as you are logged on to your computer. You have to run it every time you log on before you try to start MB3. I added it to my startup script so it runs every time I logon. (I edited the .bash_profile file in my home folder. This is a hidden file so you don't see it unless you know how to look for it. I just used nano to edit it) My .bash_profile now looks like this # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs . /opt/mono/env.sh PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH You can test your Mono installation now by executing mono -V [smitopher@localhost ~]$ mono -V Mono JIT compiler version 3.2.8 (tarball Thu Feb 20 17:33:58 UTC 2014) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen [smitopher@localhost ~]$ Next, I downloaded the MB3 mono build that Luke provided (a zip archive, to be Linux friendly maybe a tar archive would be better?) Since my server has no keyboard or display, I had to download it and then copy it on to my server using a Samba share to my home folder. (could use a ssh file utility like WinSCP http://winscp.net/eng/docs/free_ssh_client_for_windows. A more linux friendly approach when you start publishing the mono build is a direct http link so a user could get it directly with wget) I unzipped the zip archive unzip ~/MBServer.Mono.zip -d ~/MBServer This created a MBServer folder off my home folder I could then start MB3 mono MediaBrowser.Server.Mono.exe My server has no GUI or browser so instead of launching Firefox, the console had an error message with the URL to run the MB3 initial wizard. If you are like me, you can use that URL, replacing "localhost" with the ip address or hostname of your server to complete the wizard from another computer. Congratulations, You now have Media Browser 3 Server running on a Linux Box. Your next steps are to run MB3 as a daemon (equivalent of a Windows Service). I have not done that yet. Someone earlier in the thread has. Edited March 9, 2014 by smitopher 3 Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 @@smitopher - you know that we have a build with mono embedded, right? have you tried that as a means to eliminate some of those early steps? Link to comment Share on other sites More sharing options...
PhAzE 17 Posted March 9, 2014 Share Posted March 9, 2014 @@smitopher - you know that we have a build with mono embedded, right? have you tried that as a means to eliminate some of those early steps? Hey Luke, if you have a linux distro running another app that uses mono (but a different version) and I install your embedded version, any idea if the two mono versions would conflict or run side by side? Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 Hey Luke, if you have a linux distro running another app that uses mono (but a different version) and I install your embedded version, any idea if the two mono versions would conflict or run side by side? Well you don't actually install it. It's embedded into the application. Link to comment Share on other sites More sharing options...
PhAzE 17 Posted March 9, 2014 Share Posted March 9, 2014 (edited) Well you don't actually install it. It's embedded into the application. Perfect, I wasn't sure so I thought I'd ask. I'm going to have a look this week at writing an UnRaid plugin to get this going. With respect to UnRaid, a lot of the data locations need to be customized so that the install can be persistent after a reboot as UnRaid is installed to a RAM disk and wiped out on each boot. Having not really looked at it yet, i'm not sure if your app stores this information in config files or XML files, and the plugin will need to be able to modify these settings prior to each boot (aka have the config stored on the USB stick and copied over prior to installation). The actual install of MB3 will be done on each reboot, but the cache directory, transcode directory, Logs, and ImageByName directory will normally be installed on a cache drive to keep the data persistent. On windows you have a MediaBroser-Server directory that has other files among these ... so that whole directory i suppose will need to be persistent. In order to write this plugin for UnRaid, I would need to know which config file is used to store the paths to those directories, and any other database files that need to be persistent that may not be in the normal appdata directory. After that is setup, I'll have the plugin point to wherever these files end up being hosted or if there is a git of the linux version, it can clone from there on boot. Edit: I guess there are two ways to do this plugin. Option 1: plugin can clone from GIT, plugin will need to install all dependencies and be updated as dependencies change which usually isn't too often, but a common location for dependencies to be downloaded from needs to be stable. Option 2: plugin downloads the completed package you have setup with mono embedded, hopefully all dependencies are part of that package, the install is downloaded and kept on the users USB stick. This is how plex currently does it. The side effect of this is that the plugin has to be released with ever new server release (or the user would install the same version each time and then need to perform an application update immediately after boot up of the app automatically). Edited March 9, 2014 by PhAzE 1 Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 Perfect, I wasn't sure so I thought I'd ask. I'm going to have a look this week at writing an UnRaid plugin to get this going. With respect to UnRaid, a lot of the data locations need to be customized so that the install can be persistent after a reboot as UnRaid is installed to a RAM disk and wiped out on each boot. Having not really looked at it yet, i'm not sure if your app stores this information in config files or XML files, and the plugin will need to be able to modify these settings prior to each boot (aka have the config stored on the USB stick and copied over prior to installation). The actual install of MB3 will be done on each reboot, but the cache directory, transcode directory, Logs, and ImageByName directory will normally be installed on a cache drive to keep the data persistent. On windows you have a MediaBroser-Server directory that has other files among these ... so that whole directory i suppose will need to be persistent. In order to write this plugin for UnRaid, I would need to know which config file is used to store the paths to those directories, and any other database files that need to be persistent that may not be in the normal appdata directory. After that is setup, I'll have the plugin point to wherever these files end up being hosted or if there is a git of the linux version, it can clone from there on boot. Awesome! The app.config file, which is in the executable directory has a setting called ReleaseProgramDataPath. That might be all you need to set. Individual directories underneath that can then be configured within the application. Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 (edited) @@smitopher - you know that we have a build with mono embedded, right? have you tried that as a means to eliminate some of those early steps? Yes. I tried it before and just now, I downloaded it again and retried it. It works but... Version 3.0.5138.32388A new version of Media Browser Server is available! Version 3.0.5171.19958 is now available for download. it does not appear to be as current as the non mono embedded. It is also missing path substitution Edited March 9, 2014 by smitopher Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 ok, i just need to update the download url. can you do an installation procedure for the embedded version? Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 for S**ts and Giggles, I just installed the officially available Mono [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ mono -V Mono JIT compiler version 2.10.8 (tarball Sat Feb 16 11:51:56 UTC 2013) Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: debugger softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark) [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ I also have Pakorra repo Mono installed [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ . /opt/mono/env.sh [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ mono -V Mono JIT compiler version 3.2.8 (tarball Thu Feb 20 17:33:58 UTC 2014) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ MB3 with Mono embedded appears to run normally [smitopher@localhost ~]$ cd mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388 [smitopher@localhost MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388]$ ./MediaBrowser.Server.Mono.x86_64 Info, Main, Media Browser Server started Info, Main, Command line: /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/MediaBrowser.Server.Mono.exe Info, Main, Server: localhost.localdomain Info, Main, Operating system: Unix 3.13.5.101 appHost.Init Info, App, Application Configuration: {"WeatherUnit":"Fahrenheit","EnableHttpLevelLogging":true,"HttpServerPortNumber":8096,"LegacyWebSocketPortNumber":8945,"EnableInternetProviders":true,"SeasonZeroDisplayName":"Specials","MetadataRefreshDays":30,"SaveLocalMeta":true,"RefreshItemImages":false,"PreferredMetadataLanguage":"en","MetadataCountryCode":"US","DownloadMovieImages":{"Art":true,"Logo":true,"Primary":true,"Backdrops":true,"Disc":true,"Thumb":true,"Banner":true},"DownloadSeriesImages":{"Art":true,"Logo":true,"Primary":true,"Backdrops":true,"Disc":true,"Thumb":true,"Banner":true},"DownloadSeasonImages":{"Art":true,"Logo":true,"Primary":true,"Backdrops":false,"Disc":true,"Thumb":true,"Banner":true},"DownloadMusicArtistImages":{"Art":true,"Logo":true,"Primary":true,"Backdrops":true,"Disc":true,"Thumb":true,"Banner":true},"DownloadMusicAlbumImages":{"Art":true,"Logo":true,"Primary":true,"Backdrops":true,"Disc":true,"Thumb":true,"Banner":true},"SortReplaceCharacters":[".","+","%"],"SortRemoveCharacters":[",","&","-","{","}","'"],"SortRemoveWords":["the","a","an"],"ShowLogWindow":false,"RecentItemDays":10,"MinResumePct":5,"MaxResumePct":90,"MinResumeDurationSeconds":300,"FileWatcherDelay":8,"EnableDashboardResponseCaching":true,"ManualLoginClients":[],"EnableTvDbUpdates":false,"EnableTmdbUpdates":false,"EnableVideoImageExtraction":true,"ImageSavingConvention":"Compatible","EnablePeoplePrefixSubFolders":true,"MediaEncodingQuality":"Auto","EnableMovieChapterImageExtraction":true,"EnableEpisodeChapterImageExtraction":false,"EnableOtherVideoChapterImageExtraction":false,"MovieOptions":{"MaxBackdrops":3,"MinBackdropWidth":1280},"TvOptions":{"MaxBackdrops":3,"MinBackdropWidth":1280},"MusicOptions":{"MaxBackdrops":1,"MinBackdropWidth":1280},"GameOptions":{"MaxBackdrops":3,"MinBackdropWidth":1280},"BookOptions":{"MaxBackdrops":1,"MinBackdropWidth":1280},"EnableDebugEncodingLogging":false,"EnableAutomaticRestart":true,"TvFileOrganizationOptions":{"IsEnabled":false,"MinFileSizeMb":50,"LeftOverFileExtensionsToDelete":[],"WatchLocations":[],"SeasonFolderPattern":"Season %s","SeasonZeroFolderName":"Season 0","EpisodeNamePattern":"%sn - %sx%0e - %en.%ext","MultiEpisodeNamePattern":"%sn - %sx%0e-x%0ed - %en.%ext","OverwriteExistingEpisodes":false,"DeleteEmptyFolders":false},"LiveTvOptions":{},"EnableDebugLevelLogging":false,"EnableAutoUpdate":true,"SystemUpdateLevel":"Release","LogFileRetentionDays":3,"RunAtStartup":false,"IsStartupWizardCompleted":true} Info, App, Loading MediaBrowser.Api, Version=3.0.5138.32388, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.WebDashboard, Version=3.0.5138.32387, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Model, Version=3.0.5138.32384, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common, Version=3.0.5138.32384, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Controller, Version=3.0.5138.32385, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common.Implementations, Version=3.0.5138.32385, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Implementations, Version=3.0.5138.32386, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.IsoMounting.Linux, Version=1.0.5131.24779, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Mono, Version=3.0.5138.32388, Culture=neutral, PublicKeyToken=null Info, App, Version 3.0.5138.32388 initializing Info, SqliteUserRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/users.db Info, SqliteItemRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/chapters.db Info, SqliteItemRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/mediainfo.db Info, SqliteItemRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/providerinfo.db Info, SqliteFileOrganizationRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/fileorganization.db Info, SqliteDisplayPreferencesRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/displaypreferences.db Info, SqliteNotificationsRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/notifications.db Info, SqliteItemRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/library.db Info, SqliteUserDataRepository, Opening /home/smitopher/mb3MonoEmbed/MediaBrowser.Mono.mkbundlex.X86_64.3.0.5138.32388/ProgramData-Server/data/userdata_v2.db Info, HttpServer, Calling ServiceStack AppHost.Init Error, ServiceController, System.ArgumentException: Type ServiceStack.Api.Swagger.SwaggerResourcesService is not a Web Service that inherits IService at ServiceStack.Host.ServiceController.RegisterService (System.Type serviceType) [0x00000] in <filename unknown>:0 Error, ServiceController, System.ArgumentException: Type ServiceStack.Api.Swagger.SwaggerApiService is not a Web Service that inherits IService at ServiceStack.Host.ServiceController.RegisterService (System.Type serviceType) [0x00000] in <filename unknown>:0 Info, ServiceStackHost, Initializing Application took 4405.526ms Info, App, Loading Http Server Info, HttpServer, Adding HttpListener prefix http://+:8096/mediabrowser/ Info, HttpServer, Starting HttpListner Info, App, Starting Alchemy web socket server on port 8945 Info, App, Alchemy Web Socket Server started Running startup tasks Info, App, Core startup complete MB3 without Mono embedded appears to be running normally [smitopher@localhost MBServer]$ . /opt/mono/env.sh [smitopher@localhost MBServer]$ mono MediaBrowser.Server.Mono.exe Info, Main, Media Browser Server started Info, Main, Command line: /home/smitopher/MBServer/MediaBrowser.Server.Mono.exe Info, Main, Server: localhost.localdomain Info, Main, Operating system: Unix 3.13.5.101 appHost.Init Info, App, Application Configuration: {"WeatherUnit":"Fahrenheit","EnableHttpLevelLogging":true,"EnableUPnP":true,"HttpServerPortNumber":8096,"LegacyWebSocketPortNumber":8945,"EnableInternetProviders":true,"SeasonZeroDisplayName":"Specials","MetadataRefreshDays":30,"SaveLocalMeta":true,"RefreshItemImages":false,"PreferredMetadataLanguage":"en","MetadataCountryCode":"US","SortReplaceCharacters":[".","+","%"],"SortRemoveCharacters":[",","&","-","{","}","'"],"SortRemoveWords":["the","a","an"],"ShowLogWindow":false,"RecentItemDays":10,"MinResumePct":5,"MaxResumePct":90,"MinResumeDurationSeconds":300,"RealtimeWatcherDelay":20,"EnableDashboardResponseCaching":true,"ManualLoginClients":[],"EnableTvDbUpdates":false,"EnableTmdbUpdates":false,"EnableFanArtUpdates":false,"ImageSavingConvention":"Compatible","EnablePeoplePrefixSubFolders":true,"MediaEncodingQuality":"Auto","AllowVideoUpscaling":false,"EnableMovieChapterImageExtraction":true,"EnableEpisodeChapterImageExtraction":false,"EnableOtherVideoChapterImageExtraction":false,"MetadataOptions":[{"ItemType":"Book","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicAlbum","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicArtist","ImageOptions":[{"Type":"Backdrop","Limit":1,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Season","ImageOptions":[{"Type":"Backdrop","Limit":0,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Movie","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Episode","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"AdultVideo","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"MusicVideo","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Video","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]},{"ItemType":"Trailer","ImageOptions":[{"Type":"Backdrop","Limit":3,"MinWidth":1280}],"DisabledMetadataSavers":[],"LocalMetadataReaderOrder":[],"DisabledMetadataFetchers":[],"MetadataFetcherOrder":[],"DisabledImageFetchers":[],"ImageFetcherOrder":[]}],"EnableDebugEncodingLogging":false,"EnableAutomaticRestart":true,"TvFileOrganizationOptions":{"IsEnabled":false,"MinFileSizeMb":50,"LeftOverFileExtensionsToDelete":[],"WatchLocations":[],"SeasonFolderPattern":"Season %s","SeasonZeroFolderName":"Season 0","EpisodeNamePattern":"%sn - %sx%0e - %en.%ext","MultiEpisodeNamePattern":"%sn - %sx%0e-x%0ed - %en.%ext","OverwriteExistingEpisodes":false,"DeleteEmptyFolders":false,"CopyOriginalFile":false},"LiveTvOptions":{},"EnableRealtimeMonitor":true,"PathSubstitutions":[{"From":"/home/smitopher/mblib/tv","To":"\\\\192.168.14.20\\Videos"},{"From":"/home/smitopher/mblib/movies","To":"\\\\192.168.14.20\\Movies"}],"EnableDebugLevelLogging":false,"EnableAutoUpdate":true,"SystemUpdateLevel":"Release","LogFileRetentionDays":3,"RunAtStartup":false,"IsStartupWizardCompleted":true} Info, App, Loading MediaBrowser.Api, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.WebDashboard, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Model, Version=3.0.5180.21468, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Controller, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Providers, Version=3.0.5180.21470, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Common.Implementations, Version=3.0.5180.21469, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Implementations, Version=3.0.5180.21471, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Dlna, Version=3.0.5180.21472, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.IsoMounting.Linux, Version=1.0.5131.24779, Culture=neutral, PublicKeyToken=null Info, App, Loading MediaBrowser.Server.Mono, Version=3.0.5180.21473, Culture=neutral, PublicKeyToken=null Info, App, Version 3.0.5180.21473 initializing Info, SqliteUserRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/users.db Info, SqliteItemRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/chapters.db Info, SqliteItemRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/mediainfo.db Info, SqliteFileOrganizationRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/fileorganization.db Info, SqliteDisplayPreferencesRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/displaypreferences.db Info, SqliteNotificationsRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/notifications.db Info, SqliteItemRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/library.db Info, SqliteUserDataRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/userdata_v2.db Info, SqliteProviderInfoRepository, Opening /home/smitopher/MBServer/ProgramData-Server/data/refreshinfo.db Info, HttpServer, Calling ServiceStack AppHost.Init Info, ServiceStackHost, Initializing Application took 3336.953ms Info, App, Loading Http Server Info, HttpServer, Adding HttpListener prefix http://+:8096/mediabrowser/ Info, HttpServer, Starting HttpListner Info, App, Starting Alchemy web socket server on port 8945 Info, App, Alchemy Web Socket Server started Running startup tasks Info, App, Core startup complete Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 ok, i just need to update the download url. can you do an installation procedure for the embedded version? Sure, let me know when you have updated the URL Link to comment Share on other sites More sharing options...
Luke 37156 Posted March 9, 2014 Author Share Posted March 9, 2014 Sure, let me know when you have updated the URL https://www.dropbox.com/s/vmv8xhyj57vtldj/MBServer.Mono.Mkbundle.zip Link to comment Share on other sites More sharing options...
smitopher 19 Posted March 9, 2014 Share Posted March 9, 2014 https://www.dropbox.com/s/vmv8xhyj57vtldj/MBServer.Mono.Mkbundle.zip I don't this that is the Mono embedded [smitopher@localhost mb3MonoEmbed]$ ls Alchemy.dll MediaBrowser.Common.Implementations.dll MediaBrowser.Providers.dll.mdb NLog.dll sqlite3 ApiClient.js MediaBrowser.Common.Implementations.dll.mdb MediaBrowser.Server.Implementations.dll ServiceStack.Api.Swagger.dll sqlite3.dll BDInfo.dll MediaBrowser.Controller.dll MediaBrowser.Server.Implementations.dll.mdb ServiceStack.Client.dll swagger-ui dashboard-ui MediaBrowser.Controller.dll.mdb MediaBrowser.Server.Mono.exe ServiceStack.Common.dll System.Data.SQLite.dll DvdLib.dll MediaBrowser.Dlna.dll MediaBrowser.Server.Mono.exe.config ServiceStack.dll System.Data.SQLite.dll.config MediaBrowser.Api.dll MediaBrowser.IsoMounting.Linux.dll MediaBrowser.WebDashboard.dll ServiceStack.Interfaces.dll System.Data.SQLite.Linq.dll MediaBrowser.Api.dll.mdb MediaBrowser.Model.dll MediaBrowser.WebDashboard.dll.mdb ServiceStack.Text.dll MediaBrowser.Common.dll MediaBrowser.Model.dll.mdb Mono.Nat.dll SharpCompress.dll MediaBrowser.Common.dll.mdb MediaBrowser.Providers.dll MoreLinq.dll SimpleInjector.dll [smitopher@localhost mb3MonoEmbed]$ . MediaBrowser.Server.Mono.exe -bash: .: MediaBrowser.Server.Mono.exe: cannot execute binary file [smitopher@localhost mb3MonoEmbed]$ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now