The linksharing service is a part of Edge services. You need to have authservice and gateway-mt setup and running, now you need to run linksharing service too.
Without authservice and gateway-mt uplink will be unable to generate URLs for linksharing service.
This is just depends on where your binary is running. This service expects files from gateway-mt/pkg/linksharing/web at main · storj/gateway-mt · GitHub to be in the directory where your linksharing binary is located as pkg/linksharing/web.
You may also just try to switch to the cloned repository before you run the linksharing service, but likely it want that directory in the binary location.
You may do so either by copying of pkg folder to the linksharing binary location or by copying/moving linksharing binary to the root of the repository and run it from there.
@Alexey@jeremy
My config.yaml of linksharing look like this
# public address to listen on
address: :20020
# public tls address to listen on
address-tls: :20021
# The active time between retries, typically not set
# auth-service.back-off.delay: 0s
# The maximum total time to allow retries
# auth-service.back-off.max: 5m0s
# The minimum time between retries
# auth-service.back-off.min: 100ms
# base url to use for resolving access key ids
auth-service.base-url: http://localhost:8000
# how many cached access grants to keep in cache
auth-service.cache.capacity: 10000
# how long to keep cached access grants in cache
auth-service.cache.expiration: 24h0m0s
# how long to wait for a single auth service connection
auth-service.timeout: 10s
# auth token for giving access to the auth service
auth-service.token: super-secret
# server certificate file
cert-file: ""
# bucket to use for certificate storage with optional prefix (bucket/prefix)
cert-magic.bucket: ""
# email address to use when creating an ACME account
cert-magic.email: ""
# use CertMagic to handle TLS certificates
cert-magic.enabled: false
# path to the service account key file
cert-magic.key-file: ""
# comma separated list of domain names which bypass paid tier queries. Set to * to disable tier check entirely
cert-magic.skip-paid-tier-allowlist: []
# use staging CA endpoints
cert-magic.staging: true
# tier querying service cache capacity
cert-magic.tier-cache-capacity: 10000
# expiration time for tier querying service cache
cert-magic.tier-cache-expiration: 10s
# path to the certificate chain for this identity
cert-magic.tier-service-identity.cert-path: \identity.cert
# path to the private key for this identity
cert-magic.tier-service-identity.key-path: \identity.key
# list of clients IPs (comma separated) which are trusted; usually used when the service run behinds gateways, load balancers, etc.
client-trusted-ips-list: []
# RPC connection pool capacity
connection-pool.capacity: 100
# RPC connection pool idle expiration
connection-pool.idle-expiration: 2m0s
# RPC connection pool key capacity
connection-pool.key-capacity: 5
# address to listen on for debug endpoints
# debug.addr: 127.0.0.1:0
# If set, a path to write a process trace SVG to
# debug.trace-out: ""
# timeout for dials
# dial-timeout: 10s
# dns server address to use for TXT resolution
dns-server: 1.1.1.1:53
# maxmind database file path
geo-location-db: ""
# listen using insecure connections only
insecure-disable-tls: true
# server key file
key-file: ""
# the url to redirect empty requests to
landing-redirect-target: https://www.storj.io/
# if true, log function filename and line number
# log.caller: true
# if true, set logging to development mode
# log.development: true
# configures log encoding. can either be 'console', 'json', 'pretty', or 'gcloudlogging'.
# log.encoding: ""
# the minimum log level to log
# log.level: debug
# can be stdout, stderr, or a filename
# log.output: stderr
# if true, log stack traces
# log.stack: true
# address(es) to send telemetry to (comma-separated)
# metrics.addr: ""
# application name for telemetry identification. Ignored for certain applications.
# metrics.app: linksharing
# application suffix. Ignored for certain applications.
# metrics.app-suffix: -dev
# address(es) to send telemetry to (comma-separated)
# metrics.event-addr: ""
# instance id prefix
# metrics.instance-prefix: ""
# how frequently to send up telemetry. Ignored for certain applications.
# metrics.interval: 1m0s
# comma separated list of public urls for the server
public-url: http://localhost:8001
# The default number of iterations for each check
# quickchecks: 100
# redirect to HTTPS
redirect-https: false
# time to delay server shutdown while returning 503s on the health endpoint
shutdown-delay: 1s
# enable standard (non-hosting) requests to render content and not only download it
standard-renders-content: false
# serve HTML as text/html instead of text/plain for standard (non-hosting) requests
standard-views-html: false
# the path to where web assets are located
static-sources-path: ./pkg/linksharing/web/static
# the path to where renderable templates are located
templates: ./pkg/linksharing/web
# address for jaeger agent
# tracing.agent-addr: 127.0.0.1:5775
# application name for tracing identification
# tracing.app: linksharing
# application suffix
# tracing.app-suffix: -dev
# buffer size for collector batch packet size
# tracing.buffer-size: 0
# whether tracing collector is enabled
# tracing.enabled: true
# how frequently to flush traces to tracing agent
# tracing.interval: 0s
# buffer size for collector queue size
# tracing.queue-size: 0
# how frequent to sample traces
# tracing.sample: 0
# max ttl (seconds) for website hosting txt record cache
txt-record-ttl: 10s
# use the headers sent by the client to identify its IP. When true the list of IPs set by --client-trusted-ips-list, when not empty, is used
use-client-ip-headers: true