server icon indicating copy to clipboard operation
server copied to clipboard

Manual install? Self hosting improvements . . .

Open FBachofner opened this issue 6 years ago • 24 comments

What if someone doesn't want to use Git? [ for example, doesn't like the directory into which Git "forces" the install ]

Would the following steps work?

  1. copy repository into /my_special/ETE_directory

  2. cd /my_special/ETE_directory

  3. Set up the environment and deps

virtualenv3 .venv

  1. source .venv/bin/activate
  2. pip install -r requirements.txt

Any "gotcha's" with this idea?

It would be great if you clarified and/or improved the self-hosting options a bit. I know a large number of people don't want to use Git and/or pip.

Would it be possible for you to setup an APT repository to achieve a "simpler" self hosted install? Most server admins would be very familiar with this (even while possibly not so familiar with Git and/or pip when they are not necessarily developers).

This might seem a bit counter to your desires to monetize https://www.etesync.com/ , but I think the constructive feedback you would get from "power users" might be well worth it in the long run.

Thanks for your consideration!

FBachofner avatar Mar 14 '19 17:03 FBachofner

Thanks for your suggestion. As you may be aware, packaging takes a lot of time and effort. There's already an effort (by a user) to package etesync for Arch, but doing it for every distro is time-consuming and doesn't provide as much value as working on other parts of the EteSync ecosystem. If anything, I'd much rather create a Docker image which would make it much easier to spin up self-hosted servers than packaging for Debian. It's a matter of priorities, and it's just not high on the list...

As for avoiding git, you can already do that by just downloading the repo's zip straight from GitHub. As for not using pip, that's unfortunately not trivial at the moment (but not that hard...).

tasn avatar Mar 14 '19 18:03 tasn

Hi Tom:

Thanks for your quick response. I've been reading up on Git while anticipating a response here -- and think it will be easy to put the cloned repository where I want, removing one of my main concerns with usage of Git.

I actually don't fully know how time-consuming packaging is. I hear that complaint fairly frequently, but then I also see a lot of projects (often quite small) which have packaged for a number of distros.

The move to containerized environments like Docker seems to hold a lot of sway currently, but to me just seems like adding yet another layer of complexity.

I'll report back on my experiences with attempting to self-host ETE-Sync. It looks like you might have an elegant alternative to Radicale.

FBachofner avatar Mar 14 '19 18:03 FBachofner

OK, I successfully Git-cloned ETESync where I wanted it

next:

  • cd to correct directory and then
  • virtualenv3 .venv

result:

Command 'virtualenv3' not found, did you mean:
command 'virtualenv' from deb virtualenv

then,

  1. sudo apt-get install virtualenv
  2. repeat virtualenv3 .venv
  3. same error
  4. attempt: `sudo apt-get install virtualenv3
  5. result: Unable to locate package virtualenv3

This on Ubuntu 18.04

Ideas?

FBachofner avatar Mar 14 '19 18:03 FBachofner

sudo apt-get install python3-virtualenv most likely...

tasn avatar Mar 14 '19 18:03 tasn

come to think of it, virtualenv3 .venv is likely a Python command.

How to invoke?

FBachofner avatar Mar 14 '19 18:03 FBachofner

python3-virtualenv is already the newest version (15.1.0+ds-1.1).
python3-virtualenv set to manually installed.

So, I guess I am just not invoking virtualenv3 .venv corectly

FBachofner avatar Mar 14 '19 18:03 FBachofner

I'm not sure how it is in Ubuntu, so you better try Google. You can maybe try:

virtualenv -p python3 venv
source venv/bin/activate

tasn avatar Mar 14 '19 18:03 tasn

sudo virtualenv .venv result: Running virtualenv with interpreter /usr/bin/python2

sudo virtualenv -p python3 venv seems to work

OK, so the install instructions seem incorrect (for Ubuntu, at least) when it says virtualenv3 .venv

also, to source .venv/bin/activate I seem to need to python3 -m source .venv/bin/activate

Looks like the self-host install instructions need some rework -- certainly for those of us without much Python experience.

I'll report back as I move on.

Thanks!

FBachofner avatar Mar 14 '19 19:03 FBachofner

source .venv/bin/activate should be correct. Not sure what's the alternative you used is for.

Yeah, instructions are not perfect, they assume some knowledge when it comes to python and virtualenvs and were written for Arch. There's only so much I can document. :)

That's why I'm keen for Docker support...

tasn avatar Mar 14 '19 21:03 tasn

The default Python instance in Ubuntu is Python 2.7, so specifying python3 -m source .venv/bin/activate got everything going with Python3

I certainly can appreciate your limited time. For maximum reach you would probably be better served by targeting Ubuntu, however. See this Google trend analysis: https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F031y74,%2Fm%2F03x5qm

Also, Arch users might have an easier time reverse engineering Ubuntu instructions than the other way around! ;-)

FBachofner avatar Mar 14 '19 23:03 FBachofner

The source is meant to be a shell command, not a python command, and the command above doesn't work for me, and source should definitely work on Ubuntu. Anyhow, whatever works for you... :)

I think maximum reach would be targeting Docker rather than any specific distro. Regardless of that, I'll update the Ubuntu instructions now, as we already solved everything.

tasn avatar Mar 15 '19 08:03 tasn

I think maximum reach would be targeting Docker rather than any specific distro. Regardless of that, I'll update the Ubuntu instructions now, as we already solved everything.

@tasn @FBachofner

If its of interest to you, take a look on my image at Docker Hub (victorrds/etesync) , I updated recently and is the one I use on my home server.

By default it uses uWSGI as application server, and is configurable so you can use to serve directly (with https support), behind nginx, or any other reverse-proxy/load-balancer compatible with HTTP, such as traefik

victor-rds avatar Apr 18 '19 19:04 victor-rds

@victor-rds, I saw your Docker image though I haven't reviewed it properly. Once I do that we can start recommending people to use it or even make it the official image.

tasn avatar Apr 25 '19 14:04 tasn

Worth mentioning here: thanks to great work by @daftaupe, it's now packaged for both Arch and Fedora. See the README for more information.

tasn avatar Jul 19 '19 12:07 tasn

@tasn I know it's been a long time, but I revamped the docker image, and now with separate images for the latest on master branch and v0.3.0 release.

https://hub.docker.com/r/victorrds/etesync

victor-rds avatar May 08 '20 15:05 victor-rds

@victor-rds, cool, thanks for the update! :)

tasn avatar May 10 '20 07:05 tasn

I know it's been a long time, but I revamped the docker image, and now with separate images for the latest on master branch and v0.3.0 release.

https://hub.docker.com/r/victorrds/etesync

Excuse for the self-promoting comments, but if anyone is interested I created docker images for RaspberryPi and other devices based om ARM processors, if anyone wants to try and help me test please use the victorrds/etesync:experimental-alpine tag.

victor-rds avatar Sep 04 '20 14:09 victor-rds

Excuse for the self-promoting comments, but if anyone is interested I created docker images for RaspberryPi and other devices based om ARM processors, if anyone wants to try and help me test please use the victorrds/etesync:experimental-alpine tag.

That's not self-promotion! Everyone appreciates and enjoys your Docker images, and it's great news they are now also available for ARM!

tasn avatar Sep 05 '20 06:09 tasn

@victor-rds, hey, I'm trying to contact you but can't find an email for you. Could you please email me at tom @ the services's domain? I would love to chat with you about EteSync 2.0 and the best way going forward for the docker images. Thanks!

tasn avatar Sep 07 '20 07:09 tasn

@victor-rds I'd also love to see EteSync 2.0 builds!

worldofgeese avatar Oct 03 '20 06:10 worldofgeese

Btw, @victor-rds's images are now available on the latest version.

tasn avatar Nov 19 '20 14:11 tasn

Hey, i am trying to install the newst version at uberspace (shared hosting) and got an error at the migrating step.

My Steps:

$ git clone https://github.com/etesync/server etebase
$ cd etebase
$ virtualenv -p python3 .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
$ cp etebase-server.ini.example etebase-server.ini
$ nano etebase-server.ini
$ pip3 install uvicorn[standard]
$ ./manage.py migrate

And this is the output of the migrate command:

(.venv) [easye@greip etebase]$ python ./manage.py migrate
Traceback (most recent call last):
  File "./manage.py", line 21, in <module>
    main()
  File "./manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/easye/etebase/.venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/easye/etebase/.venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "/home/easye/etebase/.venv/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/easye/etebase/.venv/lib/python3.6/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/easye/etebase/.venv/lib/python3.6/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/home/easye/etebase/.venv/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/easye/etebase/django_etebase/models.py", line 37, in <module>
    class CollectionType(models.Model):
  File "/home/easye/etebase/django_etebase/models.py", line 41, in CollectionType
    objects: models.manager.BaseManager["CollectionType"]
TypeError: 'type' object is not subscriptable

I was able to install and get running the previous versions but not the newest one... Is the error on my side or in the app?

Thanks for your help!

lucollab avatar Jan 02 '21 14:01 lucollab

Etebase is Python 3.7 or newer, you seem to be using 3.6. That's why it's failing. You can use the latest release (instead of the version from master), which should still work with 3.6.

Either way, this is not the ticket for this, so if you have any more questions please come to the chat at https://www.etesync.com/community-chat/

tasn avatar Jan 02 '21 16:01 tasn

OK, I successfully Git-cloned ETESync where I wanted it

next:

* cd to correct directory
  and then

* `virtualenv3 .venv`

result:

Command 'virtualenv3' not found, did you mean:
command 'virtualenv' from deb virtualenv

then,

1. `sudo apt-get install virtualenv`

2. repeat `virtualenv3 .venv`

3. same error

4. attempt: `sudo apt-get install virtualenv3

5. result:  `Unable to locate package virtualenv3`

This on Ubuntu 18.04

Ideas?

On Debian buster as of July 2021:

sudo apt install virtualenv

fixed this -bash: virtualenv: command not found problem. Probably we can add to documentation.

bmltp avatar Jul 18 '21 00:07 bmltp