diff --git a/README.md b/README.md index 0b5d7c6..93d248b 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ services: restart: always container_name: teldrive volumes: - - ./teldrive.db:/teldrive.db:rw + - ./session.db:/session.db:rw - ./config.toml:/config.toml ports: - 8080:8080 @@ -48,7 +48,7 @@ services: restart: always container_name: teldrive volumes: - - ./teldrive.db:/teldrive.db:rw + - ./session.db:/session.db:rw - ./config.toml:/config.toml ports: - 8080:8080 @@ -88,7 +88,7 @@ app-hash = "fwfwfwf" ***Only these values are mandatory however you can change or tweak your config see more in advanced configurations below***. ```sh -touch teldrive.db +touch session.db docker compose up -d ``` - **Go to http://localhost:8080** @@ -149,6 +149,7 @@ teldrive run --help | --tg-rate-limit | Enable rate limiting | No | true | | --tg-rate-burst | Limiting burst | No | 5 | | --tg-rate | Limiting rate | No | 100 | +| --tg-session-file | Bot Session File file. | No | $HOME/.teldrive/session.db | | --tg-bg-bots-limit | Start at most this no of bots in the background to prevent connection recreation on every request.Increase this if you are streaming or downloading large no of files simultaneously. | No | 5 | --tg-uploads-threads | Concurrent Uploads threads for uploading file | No | 16 | | --tg-uploads-retention | Uploads retention duration.Duration to keep failed uploaded chunks in db for resuming uploads. | No | 360h (30 days) | diff --git a/docker-compose.postgres.yml b/docker-compose.postgres.yml index 4ea1c03..3b673fe 100644 --- a/docker-compose.postgres.yml +++ b/docker-compose.postgres.yml @@ -6,7 +6,7 @@ services: restart: always container_name: teldrive volumes: - - ./teldrive.db:/teldrive.db:rw + - ./session.db:/session.db:rw - ./config.toml:/config.toml env_file: teldrive.env ports: diff --git a/docker-compose.yml b/docker-compose.yml index f2f7ac9..9e9941c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: restart: always container_name: teldrive volumes: - - ./teldrive.db:/teldrive.db:rw + - ./session.db:/session.db:rw - ./config.toml:/config.toml ports: - 8080:8080 diff --git a/goreleaser.dockerfile b/goreleaser.dockerfile index 66fadfc..ad2e70a 100644 --- a/goreleaser.dockerfile +++ b/goreleaser.dockerfile @@ -1,4 +1,4 @@ FROM scratch COPY teldrive /teldrive EXPOSE 8080 -ENTRYPOINT ["/teldrive","run"] \ No newline at end of file +ENTRYPOINT ["/teldrive","run","--tg-session-file","/session.db"] \ No newline at end of file diff --git a/internal/kv/bolt.go b/internal/kv/bolt.go index 91a8ed8..0ee688d 100644 --- a/internal/kv/bolt.go +++ b/internal/kv/bolt.go @@ -1,11 +1,13 @@ package kv import ( + "os" "path/filepath" "time" "github.com/divyam234/teldrive/internal/config" "github.com/divyam234/teldrive/internal/utils" + "github.com/mitchellh/go-homedir" "go.etcd.io/bbolt" ) @@ -46,7 +48,17 @@ func NewBoltKV(cnf *config.Config) KV { sessionFile := cnf.TG.SessionFile if sessionFile == "" { - sessionFile = filepath.Join(utils.ExecutableDir(), "teldrive.db") + dir, err := homedir.Dir() + if err != nil { + dir = utils.ExecutableDir() + } else { + dir = filepath.Join(dir, ".teldrive") + err := os.Mkdir(dir, 0755) + if err != nil && !os.IsExist(err) { + dir = utils.ExecutableDir() + } + } + sessionFile = filepath.Join(dir, "session.db") } boltDB, err := bbolt.Open(sessionFile, 0666, &bbolt.Options{ Timeout: time.Second,