How to install plugins on self hosted

The self hosted version has the Calendar plugin but how do I install the Gallery, Map and Timeline plugins?

The Plugins tab in System Admin has an Upload plugin button. Are the plugins available pre-built for me to upload?

The other button, Import plugin from market is empty and shows Please add seatable market configs.

Thanks.

You can download plugins from https://market.seatable.io/plugins/ and upload them in the system admin panel.

The map plugin requires a google map account, which can’t be used in self-hosted version.

Thanks for the help. I installed the plugins but they don’t work.

WHAT I DID

  1. Download Gallery plugin from https://market.seatable.io/plugins/
  2. Go to System Admin Plugins page (/sys/plugins/)
  3. Click Upload plugin button and select gallery-0.1.18.zip
  4. Plugin appears in the list but the icon is missing (see below)

  1. Add the plugin to a table by opening the table, clicking Plugins > Add Plugins > Add
  2. The plugin appears in the Plugins list and I click it. A window appears with a spinner and Plugin is loading... It never loads (see below)

Nothing appears in the Seatable error logs upon doing any of the above actions.

WHAT I DID TO TRY AND FIX IT

  1. docker exec -it seatable /bin/bash
  2. cd seatable-server-latest/dtable-web/media/dtable-plugins The only folder is /calendar
  3. cd seatable-server-1.4.0/dtable-web/media/dtable-plugins The only folder is /calendar

The plugins remain in System Admin Plugins page (/sys/plugins/) between restarts so perhaps they are located in a different place?

OTHER INFO

I use a reverse proxy that supplies its own certificate so I access Seatable at https://seatable.example.com. This works correctly although to get tables to show I had to change all http urls to https in dtable_web_settings.py, otherwise tables wouldn’t load and I’d just see a white screen with a spinner (https://github.com/seatable/seatable/issues/81#issuecomment-724150453).

QUESTION

Any advice on how to enable plugins greatly appreciated. Thanks.

I suggest you use browser’s debug mode to see which resource the browser failed to load.

The images I included in my post have the Chrome console at the bottom showing the missing resources and an unexpected token error.

Like I mentioned, I couldn’t find the dtable-plugins/gallery folder inside the container, it only contains the preinstalled dtable-plugins/calendar folder.

Thanks again.

From the screenshot, the URL is wrong:

It seems that you have not configured the URLs in dtable_web_settings.py according to our manual.

Like I mentioned, I couldn’t find the dtable-plugins/gallery folder inside the container, it only contains the preinstalled dtable-plugins/calendar folder.

Extra plugins are not stored in dtable-plugins.

I followed the docs and in my docker-compose.yml I have;

SEATABLE_SERVER_HOSTNAME: seatable.redacted.com

My dtable_web_settings.py has the URLs like so;

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'seatable_db',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'redacted',
        'NAME': 'dtable_db',
        'OPTIONS': {
            'charset': 'utf8mb4',
        },
    }
}

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': 'memcached',
    },
    'locmem': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
COMPRESS_CACHE_BACKEND = 'locmem'

# for dtable-server
DTABLE_PRIVATE_KEY = 'redacted'
DTABLE_SERVER_URL = 'https://seatable.redacted.com/dtable-server/'
DTABLE_SOCKET_URL = 'https://seatable.redacted.com/'

# for dtable-web
DTABLE_WEB_SERVICE_URL = 'https://seatable.redacted.com/'

# for seaf-server
FILE_SERVER_ROOT = 'https://seatable.redacted.com/seafhttp/'
ENABLE_USER_TO_SET_NUMBER_SEPARATOR = True
PLUGINS_REPO_ID='f24d5f5f-900c-40cc-8c3e-fee4ca75e5d0'

The only change I made was to change http to https otherwise tables wouldn’t load and I’d just see a white screen with a spinner (https://github.com/seatable/seatable/issues/81#issuecomment-724150453).

The only place I can see reference to 127.0.0.1:8000 is in nginx.conf. I’m using Traefik as my reverse proxy to access Seatable from https://seatable.redacted.com.

Thanks again for you help.

After a bit more digging it seems that when a Base loads and plugins are installed, there’s a call to each plugin. E.g;

https://seatable.redacted.com/dtable-plugins/timeline/?path=/main.js&t=XXXXXXXXXXXXX

For some reason, this makes the forward auth (traefik-forward-auth) on my reverse proxy kick in which returns the Google login page which is html. This obviously breaks the call with the error, SyntaxError: Unexpected token '<'.

I wonder if anyone in the community has a similar setup or understands why when I’m already authenticated with oauth, a request causes oauth to kick in? Thanks.

If I have the Google API Key can I install the plugin?

Add the following configuration to dtable_web_settings.py:

DTABLE_GOOGLE_MAP_KEY = ‘xxx’

Thank you, it works!

But how do I show some pins location on the map? What kind of data that I need? I have Longitude and Latitude data, can I use that?

Nothing showed here.

1 Like

Did you ever get the pins to show?

Edit: I got it working by enabling the Geocoding API in my Google dev account.