webrecorder / webrecorder-desktop

Webrecorder Desktop App!
201 stars 24 forks source link

[Linux] Embed the Redis server internally, not OS-level #26

Open shavs opened 4 years ago

shavs commented 4 years ago

Currently, advice is to install the desktop app on Linux by installing redis-server - this makes the OS a requirement to package the Redis version, which can cause version dependency issues, amongst others.

The request would be to make Redis part of the AppImage.

Options available:

Other options are welcome! These are just the ones that I can list off of the top of my head. 👍

jerkey commented 4 years ago

I was trying to run webrecorder on linux by downloading the appImage, but it gave some errors about being unable to find redis. The README.md says redis is required, and says that it's available on most linux distros, but doesn't give any clue as to which "redis" package I need. Can that information be added to the README ? Along with perhaps some basic howto use webrecorder...i feel like i'm going to find out in a minute (after installing redis-server) whether I can figure it out or not :)

below are the redis packages available in Linux Mint:

python-redis - Persistent key-value database with network interface (Python library) python3-redis - Persistent key-value database with network interface (Python 3 library) erlang-redis-client - Redis client for Erlang applications golang-github-xyproto-simpleredis-dev - easy way to use Redis from Go golang-gopkg-redis.v2-dev - Redis client for Golang kamailio-redis-modules - Redis database connectivity module for Kamailio libanyevent-redis-perl - Perl module that implements a non-blocking Redis client libchi-driver-redis-perl - CHI driver that uses Redis to store the data libhiredis-dbg - minimalistic C client library for Redis (debug) libhiredis-dev - minimalistic C client library for Redis (development files) libhiredis0.13 - minimalistic C client library for Redis libpar-perl - Perl redistributable module packaging framework libphp-predis - Flexible and feature-complete PHP client library for the Redis key-value store libredis-perl - persistent key-value database with network interface (Perl client library) libtest-mock-redis-perl - test stub for Redis databases lua-nginx-redis - Pure Lua redis client driver for the nginx embedded Lua language lua-nginx-redis-connector - Connection utilities for lua-nginx-redis lua-redis - Redis client database library for the Lua language lua-redis-dev - Redis client database library for the Lua language node-node-redis - Redis client implementation for Node.js node-redis - redis client library for Node.js php-nrk-predis - Flexible and feature-complete PHP client library for the Redis key-value store php-redis - PHP extension for interfacing with Redis python-django-websocket-redis - Websockets for Django applications using Redis (Python2 version) python-hiredis - redis protocol reader for Python 2.X using hiredis python3-aioredis - asyncio (PEP 3156) Redis support python3-django-websocket-redis - Websockets for Django applications using Redis (Python3 version) python3-hiredis - redis protocol reader for Python using hiredis redis-sentinel - Persistent key-value database with network interface (monitoring) redis-server - Persistent key-value database with network interface redis-tools - Persistent key-value database with network interface (client) ruby-em-hiredis - fast and simple Redis client for EventMachine ruby-em-hiredis-doc - fast and simple Redis client for EventMachine (documentation) ruby-em-redis - eventmachine-based implementation of the Redis protocol ruby-fakeredis - In-memory driver for redis-rb, useful for development and test environments ruby-hiredis - Redis driver for Ruby using Hiredis ruby-redis - Ruby client library for Redis ruby-redis-actionpack - Redis session store for ActionPack ruby-redis-activesupport - Redis store for ActiveSupport::Cache ruby-redis-namespace - Namespaces commands when multiple apps access same redis server ruby-redis-rack - Redis Store for Rack ruby-redis-rails - Redis stores for Ruby on Rails ruby-redis-store - redis stores for Ruby frameworks syslog-ng-mod-redis - Enhanced system logging daemon (Redis plugin)

ikreymer commented 4 years ago

You should install redis-server package, sorry that was not made more clear!

An initial attempt was to bundle a pre-build redis-server binary, but the result introduced compatibility issues, as the redis binary had dynamic library dependencies. Perhaps there's a way to build redis without dynamic dependencies. Recommending the distro installation seemed like the safest option, since redis seems widely distributed with most distros. At this point, I am exploring solution that can avoid redis, due to issues on windows.