how to migrate from gitlab to gitea
create docker-compose.yml file
version: '3.1'
services:
postgres:
image: postgres:latest
container_name: db
environment:
POSTGRES_DB: gitea
POSTGRES_USER: gitea
POSTGRES_PASSWORD: gitea
volumes:
- ./postgres-data:/var/lib/postgresql/data
restart: always
networks:
- giteanet
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=postgres
- DB_HOST=db:5432
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=gitea
restart: always
networks:
- giteanet
volumes:
- ./gitea-data:/data
depends_on:
- postgres
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx:/etc/nginx/conf.d
- ./ssl:/etc/nginx/ssl
networks:
- giteanet
depends_on:
- gitea
networks:
giteanet:
create nginx conf file
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
proxy_pass http://gitea:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
include the migration configuration in app.ini
[migrations] SKIP_TLS_VERIFY = true ALLOW_LOCALNETWORKS = true ALLOWED_DOMAINS = your domain
adjust the timeout.
[git.timeout] DEFAULT = 360000 MIGRATE = 600000 MIRROR = 3000000 CLONE = 3000000 PULL = 3000000 GC = 6000000
ssh container passthrough
[server] ... SSH_PORT = 2222 ...
gitlab to gitea
gitea backup
#!/bin/bash # This script creates a .zip backup of gitea running inside docker and copies the backup file to the current working directory echo "Creating gitea backup inside docker containter ..." docker exec -u git -it -w /tmp $(docker ps -qf "name=gitea") bash -c '/app/gitea/gitea dump -c /data/gitea/conf/app.ini --file /tmp/gitea-dump.zip' echo "Copying backup file from the container to the host machine ..." docker cp $(docker ps -qf "name=gitea"):/tmp/gitea-dump.zip /tmp echo "Removing backup file in container ..." docker exec -u git -it -w /tmp $(docker ps -qf "name=gitea") bash -c 'rm /tmp/gitea-dump.zip' echo "Renaming backup file ..." BACKUPFILE=gitea-dump-$(date +"%Y%m%d%H%M").zip mv /tmp/gitea-dump.zip $BACKUPFILE echo "Backup file is available: "$BACKUPFILE echo "Done."
gitea restore
other
docker exec -it gitea cat /data/gitea/conf/app.ini docker exec -it gitea vi /data/gitea/conf/app.ini docker exec -it gitea mv data/* /data/gitea docker exec -it gitea mv repos/* /data/git/gitea-repositories/ docker exec -it gitea chown -R git:git /data docker exec -it gitea /usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks
Comments:
Email questions, comments, and corrections to hi@smartisan.dev.
Submissions may appear publicly on this website, unless requested otherwise in your email.