{"id":19712176,"url":"https://github.com/fmstrat/message-archive","last_synced_at":"2025-06-27T23:38:27.455Z","repository":{"id":76612773,"uuid":"153167656","full_name":"Fmstrat/message-archive","owner":"Fmstrat","description":"A web-based message archive viewer for Signal and Google Voice.","archived":false,"fork":false,"pushed_at":"2022-02-23T03:46:14.000Z","size":237,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-27T19:59:59.327Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fmstrat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-15T19:08:59.000Z","updated_at":"2023-12-21T03:15:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ace4b16-c756-44f7-bb93-dc7a2954d579","html_url":"https://github.com/Fmstrat/message-archive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fmstrat/message-archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fmessage-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fmessage-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fmessage-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fmessage-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fmstrat","download_url":"https://codeload.github.com/Fmstrat/message-archive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fmessage-archive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262352144,"owners_count":23297642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T22:15:56.763Z","updated_at":"2025-06-27T23:38:27.432Z","avatar_url":"https://github.com/Fmstrat.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# message-archive\nA web-based message archive viewer for Signal, Google Voice, and Hangouts.\n\n\u003ctable border=0 padding=1\u003e\n   \u003ctr\u003e\n     \u003ctd\u003e\u003cimg src=\"screenshots/conversations.jpg\" width=300\u003e\u003c/td\u003e\n     \u003ctd\u003e\u003cimg src=\"screenshots/messages.jpg\" width=300\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Install\nThe best way to install is to use the docker image from the Docker Hub (https://hub.docker.com/r/nowsci/message-archive/).\n```\ndocker pull nowsci/message-archive\n```\nWith the following docker compose:\n```\nversion: '2.1'\n\nservices:\n\n  message-archive:\n    image: nowsci/message-archive\n    container_name: message-archive\n    environment:\n      - SIGNAL_PASS=AAAAA BBBBB CCCCC DDDDD EEEEE FFFFF\n      - MY_NUMBER=12223334444\n      - DISCORD_NAME=User#1111\n    volumes:\n      - /etc/localtime:/etc/localtime:ro\n      - ./message-archive/data:/data\n    ports:\n      - 80:80\n    restart: always\n```\nNext, start the container:\n```\ndocker-compose up -d message-archive\n```\nIf you visit the site, you're going to get an error until you run your import. So first, run:\n```\ndocker exec -ti message-archive import\n```\nThis will:\n- Set up the folder structure\n- Create a blank database\n- Secure the site with username `admin` and password `password` via `./message-archive/data/htpasswd`\n\nYou will notice a folder exists now called `./message-archive/data/backups/watch`. Place your Signal `.backup` files and Google Takeout `.zip` files there. Takeout backups for Google Voice and Hangouts can be generated at https://takeout.google.com/. Then run the import again:\n```\ndocker exec -ti message-archive import\n```\nNow your messages will display! You can add any files to the `watch` folder and run the import again at any point and it will merge in new messages, ignoring existing ones even if they were in a previous archive file.\n\n## Manual install\nWhile docker is the preferred way to run message-archive, you can run it manually if you prefer. You will need a PHP/Apache setup for the files in `html` and you will need to point the database location in the `php` files to the right file. You will also need:\n- Signal-back from https://github.com/xeals/signal-back\n- unzip\n- python3\n\nAfter that, to run imports you can use `message-archive.py`:\n```\nusage: message-archive.py [-h] [-p SIGNAL_PASS] [-s SIGNAL_BACK] -m MY_NUMBER -d DATA_DIR\n\nImport Signal and Google Voice backups into Sqlite3.\n\noptional arguments:\n  -h, --help                                   show this help message and exit\n  -p SIGNAL_PASS, --signal-pass SIGNAL_PASS    Password for signal backup\n  -s SIGNAL_BACK, --signal-back SIGNAL_BACK    Path to signal-back\n  -n DISCORD_NAME, --discord-name DISCORD_NAME Name on Discord\n\nrequired arguments:\n  -m MY_NUMBER, --my-number MY_NUMBER        Your phone number. Format: \"12223334444\"\n  -d DATA_DIR, --data-dir DATA_DIR           The data directory\n```\n\n## Getting JSON files from Discord\nUse:\n```\ndocker run -ti --rm -v ${PWD}:${PWD} -w ${PWD} docker.io/tyrrrz/discordchatexporter exportdm -f Json -t \u003ctoken\u003e\n```\nTo get your token, run:\n```\ndocker run -ti --rm -v ${PWD}:${PWD} -w ${PWD} docker.io/tyrrrz/discordchatexporter guide\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmstrat%2Fmessage-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmstrat%2Fmessage-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmstrat%2Fmessage-archive/lists"}