Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] ImSkully - Zipline

Featured Replies

zipline_small.png

A file upload server (supporting instant file sharing via ShareX/Flameshot) that is easy to use, packed with features, and simplified setup!
This is the support thread for the Zipline Community Application.

 

Website | Registry | Documentation | Template Repo

 

This application template contains a simplified installation that is ready to go after one simple step! An existing postgres database instance is required.

Zipline Features

  • Lightning fast
  • Built with Next.js & React
  • Seamless integration with ShareX/Flameshot
  • Image uploading and compression
  • URL shortening, text snippet & file uploads with code highlighting, image sharing service
  • Token protected uploading with optional password protected uploads
  • URL formats (uuid, dates, random alphanumeric, original name, zws, gfycat -> animals adjectives)
  • Gallery viewer and multiple file format support
  • Fully customizable Discord webhook notifications
  • OAuth2 registration (Discord and GitHub)
  • And much, much more!

Screenshots

Spoiler

1-dark.png

 

2-dark.png

 

3-dark.png

 

4-dark.png

 

5-dark.png

 

6-dark.png

Requirements

  1. A PostgreSQL (16 or higher) database is required for Zipline, the official postgresql16 app is recommended

Installation & Setup

  1. You will need to create a postgres database manually for Zipline prior to use as it will not create one automatically: create a new database by executing the query below in your Postgres instance:
    CREATE DATABASE zipline; -- You may name this anything

     

  2. Install Zipline from community applications and adjust the template variables as necessary:
    1. (Optional) Adjust the container WebUI port, by default this is 8092.
    2. CORE_SECRET: A random string used to sign sensitive data, must be greater than 32 characters!
    3. DATABASE_URL: Your Postgres database connection string
       
  3. Done! Create the container and visit the web UI to create your administrator account and get started!

 

For more detailed setup instructions, refer to the official Zipline documentation: zipline.diced.sh/docs/config

⚠️ Migrating from v3 to v4

If you are an existing user of Zipline and have previously configured this template, see this comment below.

Support

If you have any issues with the template or it has gone out of date, please let me know and I will update it - otherwise you are welcome to leave any support queries below.

 

Edited by ImSkully
Fix broken screenshot links.

Ok I need some help. But first let me just say that I hate postgres. :)

I can't get this to work (database connection problems).

 

I have tried:

postgresql://rootuser:rootpassword@serverip:5432

 

And it still doesn't work even though I have created the database. I have even created a database and a proper user and granted privileges but I can't connect. 

 

I get this error: Error: P1013: The provided database string is invalid. invalid port number in database URL.

 

And yes I have triple checked the ports.

 

Either I'm doing something wrong or I'm missing something here. Please help.

 

 

Edit:

Creating a separate user gives me this:

2023-08-27 10:48:15,390 PM info  [database::migrations] ensuring database exists, if not creating database - may error if no permissions
2023-08-27 10:48:15,571 PM error [database::migrations] failed to push schema
2023-08-27 10:48:15,572 PM error [database::migrations] Failed to migrate database... exiting...
2023-08-27 10:48:15,575 PM error [database::migrations] Error: db error: ERROR: function gen_random_uuid() does not exist

Edited by gxs

  • Author

@gxs What version of postgres are you running?

 

Also it looks like you are missing the database at the end of the string:

postgresql://USERNAME:PASSWORD@HOST:PORT/DATABASE
  • USERNAME: Your PostgreSQL username
  • PASSWORD: The password to the account
  • HOST: The host name (likely your Unraid server IP if its running on the same server)
  • PORT: Postgres port (default 5432)
  • DATABASE: The database to use (recommend 'zipline', it will be automatically created)

 

So in your case, try: postgresql://rootuser:rootpassword@serverip:5432/zipline

Edited by ImSkully

@gxs I believe the issue you are having is related to postgres version. I'd suggest using postgresql13 or higher since that comes bundled with gen_random_uuid by default, where with 12, you need to load the extension. I'm rather new to all this as well though, so I could be slightly incorrect, but, that's what fixed that issue for me.

Edited by Ditiae

15 hours ago, Ditiae said:

@gxs I believe the issue you are having is related to postgres version. I'd suggest using postgresql13 or higher since that comes bundled with gen_random_uuid by default, where with 12, you need to load the extension. I'm rather new to all this as well though, so I could be slightly incorrect, but, that's what fixed that issue for me.

Probably it then as I've just checked and I'm running Postgresql 12.5.

 

Thanks

  • Author

Zipline originally uses an image for PostgreSQL 15, I am personally using 14 and haven't had any issues though I have updated the template to reflect this information, thanks for letting me know.

It was my old version. I've just installed PostgreSQL 15 and it works now.

 

Thanks for the docker.

Edited by gxs

Having "Show Version in Sidebar:" set to false causes the webgui fail to load, shows "something went wrong..." after login in with administrator.

Edited by Airfirewall
Additional Info

  • Author

@Airfirewall This is a known issue (#450) in the current v3.7.3 release, an update that fixes this was just released and should be available now: Release v3.7.4

Edited by ImSkully

  • 5 months later...

Just installed, love it. Is the 4gb container size normal? I've got everything pointing to /mnt/user folders

  • Author
On 2/18/2024 at 1:11 AM, jonfive said:

Just installed, love it. Is the 4gb container size normal? I've got everything pointing to /mnt/user folders

 

Unfortunately yes, this container comes straight from the latest release on the official GitHub: ghcr.io/diced/zipline:latest

Zipline is incredibly bulky for some reason.

Edited by ImSkully

  • 2 months later...

Any ideas with this? I have tried turning things on and off but nohting seems to work. I am using pg15

 

/zipline/node_modules/fastify/fastify.js:595
        ? appendStackTrace(err, new AVVIO_ERRORS_MAP[err.code](err.message))
                                ^
FastifyError [Error]: fastify-plugin: Plugin did not start in time: 'next'. You may have forgotten to call 'done' function or to resolve a Promise
    at manageErr (/zipline/node_modules/fastify/fastify.js:595:33)
    at /zipline/node_modules/fastify/fastify.js:582:11
    at Object._encapsulateThreeParam (/zipline/node_modules/avvio/boot.js:562:7)
    at Boot.timeoutCall (/zipline/node_modules/avvio/boot.js:458:5)
    at Boot.callWithCbOrNextTick (/zipline/node_modules/avvio/boot.js:440:19)
    at release (/zipline/node_modules/fastq/queue.js:149:16)
    at Object.resume (/zipline/node_modules/fastq/queue.js:82:7)
    at /zipline/node_modules/avvio/boot.js:174:18
    at /zipline/node_modules/avvio/plugin.js:275:7
    at done (/zipline/node_modules/avvio/plugin.js:200:5) {
  code: 'FST_ERR_PLUGIN_TIMEOUT',
  statusCode: 500,
  cause: AvvioError [Error]: Plugin did not start in time: 'next'. You may have forgotten to call 'done' function or to resolve a Promise
      at Timeout._onTimeout (/zipline/node_modules/avvio/plugin.js:122:19)
      at listOnTimeout (node:internal/timers:569:17)
      at process.processTimers (node:internal/timers:512:7) {
    code: 'AVV_ERR_READY_TIMEOUT',
    fn: <ref *1> [AsyncFunction: nextPlugin] {
      default: [Circular *1],
      next: [Circular *1],
      [Symbol(skip-override)]: true,
      [Symbol(fastify.display-name)]: 'next',
      [Symbol(plugin-meta)]: { name: 'next', fastify: '4.x' }
    }
  }
}

Node.js v18.16.0
2024-08-14 01:14:55,086 AM info  [datasource] using Local(./uploads) datasource
2024-08-14 01:14:55,174 AM info  [database::migrations] establishing database connection
2024-08-14 01:14:55,175 AM info  [database::migrations] ensuring database exists, if not creating database - may error if no permissions
2024-08-14 01:14:55,439 AM info  [database::migrations] exiting migrations engine - database is up to date

 

Edited by SteelTitan

  • 4 weeks later...

UPLOADER_DEFAULT_FORMAT:NAME

 

I set this in docker, but uploading files get renamed to a random filename. I only use the webui to upload.

  • 4 weeks later...
On 9/12/2024 at 4:10 PM, sem1845 said:

UPLOADER_DEFAULT_FORMAT:NAME

 

I set this in docker, but uploading files get renamed to a random filename. I only use the webui to upload.

I got the same, did you find a solution for this?

 

  • 4 months later...
  • Author

⚠️ Breaking Changes: Zipline v3 > v4 (latest)

Zipline pushed a major release a few days ago to the :latest docker tag which will cause the container to no longer start once updated - do not update your container if you wish to remain no v3 for a little longer, otherwise please follow the migration guide here.

 

If your Zipline container automatically updated already and is now failing to start, you can revert back to v3 by changing the Repository to ghcr.io/diced/zipline:v3 in the template settings and then proceed with the migration guide.

 

If you are migrating from v3, it is also recommended to use the latest application template which has now been updated to v4 environment variables. The majority of Zipline's configuration can now be completed in the application itself so the previous environment variables no longer have any effect.

Edited by ImSkully

Hey..

Can anybody help with this please? I'm just about to give up with this... I can't find any helpful information about it at all..

I've removed and reinstalled both postgres and zipline many times and consistently get the following error in the zipline logs;

[2025-02-21T00:30:27 INFO   db] connecting to database undefined
[2025-02-21T00:30:27 INFO   server] starting zipline mode="production" version="4.0.0" argv=[]
[2025-02-21T00:30:27 ERROR  server] DATABASE_URL not set, exiting...
 

Yes, the URL is set in the Unraid Docker Template for Zipline.

It also connects successfully with the URL using DBGate.

postgresql://postgres:******@192.168.0.*:5432/zipline

 

I've tried different references to my server, ip/localhost

I've used zipline v3 and v4.

Postgres 15 and 16.

Yes, I have a 32 chr secret key set.

 

This is a new, empty Postgresql server install - Is any manual setup required first?

 

Any ideas?

Thanks

Kev

 

  • Author
26 minutes ago, Kev600 said:

Hey..

Can anybody help with this please? I'm just about to give up with this... I can't find any helpful information about it at all..

I've removed and reinstalled both postgres and zipline many times and consistently get the following error in the zipline logs;

[2025-02-21T00:30:27 INFO   db] connecting to database undefined
[2025-02-21T00:30:27 INFO   server] starting zipline mode="production" version="4.0.0" argv=[]
[2025-02-21T00:30:27 ERROR  server] DATABASE_URL not set, exiting...
 

Yes, the URL is set in the Unraid Docker Template for Zipline.

It also connects successfully with the URL using DBGate.

postgresql://postgres:******@192.168.0.*:5432/zipline

 

I've tried different references to my server, ip/localhost

I've used zipline v3 and v4.

Postgres 15 and 16.

Yes, I have a 32 chr secret key set.

 

This is a new, empty Postgresql server install - Is any manual setup required first?

 

Any ideas?

Thanks

Kev

 

Could you please share the resulting docker run command after creating Zipline from the template? Redact any credentials in DB string.

 

Also what image are you using for your postgres container?

Edited by ImSkully

Thanks for the quick response! :)

 

docker run
  -d
  --name='Zipline'
  --net='proxynet'
  --pids-limit 2048
  -e TZ="Europe/London"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="KBNAS"
  -e HOST_CONTAINERNAME="Zipline"
  -e 'CORE_SECRET'='**************************
  -e 'CORE_DATABASE_URL'='postgresql://postgres:************@192.168.0.140:5432/zipline'
  -e 'FEATURES_INVITES'='true'
  -e 'FEATURES_USER_REGISTRATION'='true'
  -e 'WEBSITE_TITLE'='Zipline'
  -e 'WEBSITE_SHOW_VERSION'='true'
  -e 'UPLOADER_USER_LIMIT'='50mb'
  -e 'UPLOADER_ADMIN_LIMIT'='100mb'
  -e 'WEBSITE_SHOW_FILES_PER_USER'='true'
  -e 'WEBSITE_DISABLE_MEDIA_PREVIEW'='false'
  -e 'CORE_RETURN_HTTPS'='false'
  -e 'CORE_STATS_INTERVAL'='1800'
  -e 'CORE_INVITES_INTERVAL'='1800'
  -e 'CORE_THUMBNAILS_INTERVAL'='600'
  -e 'MFA_TOTP_ENABLED'='true'
  -e 'MFA_TOTP_ISSUER'='Zipline'
  -e 'UPLOADER_ROUTE'='/u'
  -e 'URLS_ROUTE'='/go'
  -e 'URLS_LENGTH'='6'
  -e 'EXIF_ENABLED'='true'
  -e 'EXIF_REMOVE_GPS'='true'
  -e 'RATELIMIT_USER'='5'
  -e 'RATELIMIT_ADMIN'='1'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:3000]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/ImSkully/unraid-templates/master/zipline/zipline.png'
  -p '8092:3000/tcp'
  -v '/mnt/user/appdata/zipline/uploads':'/zipline/uploads':'rw'
  -v '/mnt/user/appdata/zipline/public':'/zipline/public':'rw'
  -v '/mnt/user/appdata/zipline/tmp':'/tmp/zipline':'rw' 'ghcr.io/diced/zipline:latest'

c104561316f06a11038d6d6f67b31a1ed7ad5183aa91f0e8747d45630eb9c107

The command finished successfully!

 

I'm using Postgres16 from: https://registry.hub.docker.com/_/postgres/, via Community Apps.

  • Author

@Kev600 You are using an outdated version of the template, I can tell because you are setting the variable:

 

CORE_DATABASE_URL'='postgresql://postgres:************@192.168.0.140:5432/zipline

 

Change this from CORE_DATABASE_URL to just DATABASE_URL and give that a go for a quick fix, though you need to delete the existing template you have installed for Zipline and download a fresh copy from community app store. The new template for v4 removes nearly all environment variables in favour of the in-application configuration instead.

Edited by ImSkully

Good catch!!

 

Progress!!

I'm now getting this;

PrismaClientInitializationError: Database `zipline` does not exist on the database server at `192.168.0.140:5432`.
    at t (/zipline/node_modules/.pnpm/@[email protected][email protected]/node_modules/@prisma/client/runtime/library.js:112:2473) {
  clientVersion: '6.1.0',
  errorCode: 'P1003'
}
 

 

Removing and reinstalling...

  • Author
1 minute ago, Kev600 said:

Good catch!!

 

Progress!!

I'm now getting this;

PrismaClientInitializationError: Database `zipline` does not exist on the database server at `192.168.0.140:5432`.
    at t (/zipline/node_modules/.pnpm/@[email protected][email protected]/node_modules/@prisma/client/runtime/library.js:112:2473) {
  clientVersion: '6.1.0',
  errorCode: 'P1003'
}
 

 

Removing and reinstalling...

You need to go into postgres and manually create the database called `zipline` if you haven't already.

Oh - I understood it to create the db as part of the Zipline set up..

 

Thanks! :)

On 2/18/2025 at 7:26 PM, ImSkully said:

⚠️ Breaking Changes: Zipline v3 > v4 (latest)

Zipline pushed a major release a few days ago to the :latest docker tag which will cause the container to no longer start once updated - do not update your container if you wish to remain no v3 for a little longer, otherwise please follow the migration guide here.

 

If your Zipline container automatically updated already and is now failing to start, you can revert back to v3 by changing the Repository to ghcr.io/diced/zipline:v3 in the template settings and then proceed with the migration guide.

 

If you are migrating from v3, it is also recommended to use the latest application template which has now been updated to v4 environment variables. The majority of Zipline's configuration can now be completed in the application itself so the previous environment variables no longer have any effect.

Thank you very much for the update! I'll remain on v3 for a little bit longer :)

  • 1 month later...

How does anyone setup AWS S3 for Zipline?  I cannot find any guidelines for unRAID.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.