In examples below we assume that:
- all files created will be owned by current user, that is why we have
--user="$(id -u):$(id -g)"
in Docker commands - code is in folder
/home/user/tg-archive
- main all sites folder is
/home/user/tg-archive/sites
This folder will keep all sites in sub-folders, with their DBs, configurations. - example site created below will be named
test
- build data will go into folder:
/var/www/public/test
- Get source code and put it into:
/home/user/tg-archive
- In terminal
cd
to folder/home/user/tg-archive
- Build
tg-archive
image:
docker-compose build
- Make sure folder
/home/user/sites
exists - Create default site based on templates
docker run --rm --user="$(id -u):$(id -g)" -v /home/user/sites:/sites tg-archive --new --path=/sites/test
- Edit new site configuration, specially set
api_id
,api_hash
andgroup
parameters in fileconfig.yaml
Skip this step if file session.session
you already created before.
Executing below will result in asking you about phone number and code sent you by Telegram
docker run --rm -it --user="$(id -u):$(id -g)" -v /home/user/sites:/sites tg-archive --config=/sites/test/config.yaml --session=/sites/session.session
docker run --rm --user="$(id -u):$(id -g)" -v /home/user/sites:/sites tg-archive --config=/sites/test/config.yaml --session=/sites/session.session --sync
For media folder placed at build destination to avoid duplicate and copy media files.
Before downloading - create manually folder /var/www/public/test/media
docker run --rm --user="$(id -u):$(id -g)" -v /home/user/sites:/sites -v /var/www/public/test/media:/sites/test/media tg-archive --config=/sites/test/config.yaml --session=/sites/session.session --sync
docker run --rm --user="$(id -u):$(id -g)" -v /home/user/sites:/sites -v /var/www/public/test:/sites/test/site tg-archive --config=/sites/test/config.yaml --build
For media folder placed at build destination to avoid duplicate and copy media files.
docker run --rm --user="$(id -u):$(id -g)" -v /home/user/sites:/sites -v /var/www/public/test:/sites/test/site -v /var/www/public/test/media:/sites/test/media tg-archive --config=/sites/test/config.yaml --build