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/api/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 SeaTable
  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 (Blank page for dtable on HTTPS · Issue #81 · seatable/seatable · GitHub).

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.

I wanted to download the new Kanban plugin for installation on our self hosted version (2.0 DE) but when I visit https://market.seatable.io/plugins/ this is what I get:

Has the way/link to download plugins for self hosted changed?

TIA

This is due to a new configuration in SeaTable 2.0. We are working on it and will bring the market back to you soon! When it’s fixed, I’ll let you know here immediately.

Thanks for letting us know!

1 Like

I think it is fixed now!

Yes, it works now. Thank you very much!!!

Hi,
I downloaded the plugins. But then how and where should they upload them ?

Login as system admin, then click on your avatar in the top right corner. In system administration, select plugins on the left.

1 Like

Thank you very much!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.