Difference between revisions of "ArchiveTeam Warrior"

From Archiveteam
Jump to navigation Jump to search
m (Reverted edits by Megalanya1 (talk) to last revision by Jscott)
Line 16: Line 16:
* [https://www.vmware.com/products/player/ VMware workstation/player] (free-gratis for personal use)
* [https://www.vmware.com/products/player/ VMware workstation/player] (free-gratis for personal use)
* [[#Alternative virtual machines|See below for alternative virtual machines]]
* [[#Alternative virtual machines|See below for alternative virtual machines]]


=== Quick start instructions for VirtualBox ===
=== Quick start instructions for VirtualBox ===
Line 30: Line 29:
# On the left, click "Available projects" tab and pick a project to work on.
# On the left, click "Available projects" tab and pick a project to work on.
#* Even better: select "ArchiveTeam's Choice" to let your warrior work on the most urgent project.
#* Even better: select "ArchiveTeam's Choice" to let your warrior work on the most urgent project.


=== Start instructions for VMWare Player ===
=== Start instructions for VMWare Player ===
Line 64: Line 62:
Please note that these alternatives are not in widespread use by our warriors, so we may not be able to help with either issues or advanced usage.
Please note that these alternatives are not in widespread use by our warriors, so we may not be able to help with either issues or advanced usage.


==Warrior FAQ==
== Warrior FAQ ==
 
=== Why a virtual machine in the first place? ===
 
The virtual machine is a quick, safe, and easy way for newcomers to help us out. It offers many features:
 
* Graphical interface
* Automatically selects which project is important to run
* Self-updating software infrastructure
* Allows for unattended use
* In case of software faults, your machine is not ruined
* Restarts itself in case of runaway programs
* Runs on Windows, Mac, and Linux painlessly
* Ensures consistency in the archived data regardless of your machine's quirks
 
If you have suggestions for improving this system, please talk to us as described below.


=== Can I use whatever internet access for the warrior? ===
=== Can I use whatever internet access for the warrior? ===
Line 72: Line 85:
* No OpenDNS. No ISP DNS that redirects to a search page. Use non-captive DNS servers.
* No OpenDNS. No ISP DNS that redirects to a search page. Use non-captive DNS servers.
* No ISP connections that inject advertisements into web pages.
* No ISP connections that inject advertisements into web pages.
* No proxies. Proxies can return bad data. The original HTTP headers and IP address is needed for the WARC file.
* No proxies. Proxies can return bad data. The original HTTP headers and IP address are needed for the WARC file.
* No content-filtering firewalls.
* No content-filtering firewalls.
* No censorship. If you believe your country implements censorship, do not run a warrior.  
* No censorship. If you believe your country implements censorship, do not run a warrior.  
* No Tor. The server may return an error page instead of content if they ban exit nodes.
* No Tor. The server may return an error page instead of content if they ban exit nodes.
* No free wifi cafe. Archiving your cafe's wifi service agreement repeatedly is not helpful.
* No free cafe wifi. Archiving your cafe's wifi service agreement repeatedly is not helpful.
* We prefer connections from many public IP addresses if possible. (For example, if your apartment building uses a single IP address, we don't want your apartment banned.)
* We prefer connections from many public IP addresses if possible. (For example, if your apartment building uses a single IP address, we don't want your apartment banned.)


=== Why am I seeing a message that no item was received? ===
=== I turned my warrior VM appliance off. Will those tasks be lost? ===
 
If you've killed your warrior VM instance, then the work your warrior did has been lost. However, the tasks will be returned to the pool after a period of time, and other warriors may claim them. If you want, you can alert the admins via [[IRC]] of what's happened and they can clear the claims your username may have made. but this isn't very important on most projects.
 
=== I closed my browser or tab with the warrior's web interface. Will those tasks be lost? ===


It means that there is no work available. This happens for several reasons:
No. The web browser interface just provides a user interface to the warrior. As long as the VM is not stopped, it will continue normally.


* There project has just finished and someone is inspecting the work done. If a problem is discovered, items may be re-queued and more work is available.
=== I need to disconnect my internet / reboot my PC. How can I do this without losing work? ===
* You have checked out / claimed too many items. Reduce your concurrency and let others do some of the work too.
* In a rare case, you have been banned by a tracker administrator because you were requesting too much work, you were tampering with the scripts, a malfunction has occurred, or your internet connection is "unclean".


=== Why am I seeing a message about rate limiting? ===
If you pause/suspend the warrior instance, most projects will allow resuming of work in progress when you unsuspend the warrior instance.


Keep in mind that although downloading the internet for digital preservation and fun are the primary goals of all Archive Team activities, serious stress on the target's server may occur. The rate limit is imposed by a [[Tracker#People|tracker administrator]] and should not be subverted.
If you decide to use the suspend feature, please note that if you keep it suspended for too long (more than a few hours), the administrators will assume that the item is lost and re-queue it. Using the suspend feature so that you can reboot your computer is perfectly fine.


(In other words, we don't want to DDoS the servers.)
=== How much disk space will the warrior use? ===


=== Why am I seeing a message about code being out of date? ===
Short answer: it depends on the project. (But never more than 60GB.)


The warrior will update its code every hour. If you are impatient, please restart the warrior and it will download the latest code and resume work.
Long answer: because each project defines items differently, sizes may vary. A single task may be a small file or a whole subsection of a website. The virtual machine is configured by default to use an absolute maximum of 60GB. Any unused virtual machine disk space is not used on the host computer. You may run the virtual machine on less than 60GB if you like to live dangerously. We're downloading the internet, after all!


===Help! The warrior is eating all my bandwidth!===
=== How can I log in to the virtual machine? ===


You can limit the warrior's bandwidth quite easily for VirtualBox as long as you are running a relatively recent version. The option is not offered with a GUI however.
Unless you know what you are doing, you should not need to do this. But, if you want to, the username is <code>root</code> and the password is <code>archiveteam</code>. Once logged in as root, you can execute <code>sudo -u warrior -i</code> to log in as the warrior user.  


The command <pre>VBoxManage bandwidthctl archiveteam-warrior-2 add limit --type network --limit 3m</pre> will limit the warrior instance called archiveteam-warrior-2 (the default name of the warrior vm currently) to 3Mb/s. Adjust as needed.
Press ALT+F3 to switch to virtual console number 3. Use ALT+Left or ALT+Right to switch between virtual consoles. There are 6 virtual consoles in total. Consoles 1 and 2 are reserved for the warrior.
(limit units: k=kilobit, m=megabit, g=gigabit, K=kilobyte, M=megabyte, G=gigabyte)


=== How can I run multiple virtual machines at the same time? ===


In the latest version of VirtualBox on Windows, the syntax appears to have changed. The correct command now seems to be:
You'll need to adjust the networking settings.


<pre>VBoxManage bandwidthctl archiveteam-warrior-2 add netlimit --type network --limit 3</pre>
In VirtualBox, select a virtual machine and open up Settings → Network → Adapter 1 → Port Fowarding. You need to adjust the host port. For example, set your table to TCP | 127.0.0.1 | 8123 | | 8001. This maps port 8123 on the host machine (your computer) to port 8001 on the virtual machine (the warrior), and you can then access the warrior's web interface from port 8123 in your browser.


For more info, consult the [http://www.virtualbox.org/manual/ch06.html#network_bandwidth_limit VirtualBox manual (Chapter 6, Section 9)].
Each VM you want to access should have a different host port. Do not use port numbers below 1024 unless you know what you are doing.


===NAT sucks! I want directly-bridged networking!===
VMWare installations should be using bridged networking. However, if you want, you can switch to NAT (under Settings → Hardware → Virtual Network Adapter) and click Edit to set up port forwarding. On Linux, you can also use lines like <code>8123 = 192.168.0.100:8001</code> in the <code>[incomingtcp]</code> section of nat.conf. (Make sure the VM IP is correct!)


Simples! (If you're running linux, that is.)
=== How can I run the virtual machine headlessly (without leaving a window open)? ===


<pre>VBoxManage modifyvm "archiveteam-warrior-2" --nic1 bridged</pre>
On VirtualBox, use this command:


<pre>VBoxManage modifyvm "archiveteam-warrior-2" --bridgeadapter1 eth0</pre>
<pre>vboxmanage startvm archiveteam-warrior-2 --type headless</pre>


(We presume you want to bind to <code>eth0</code>. Adjust as required. :))
Shut down the VM with:


=== I turned my warrior VM appliance off. Will those tasks be lost? ===
<pre>vboxmanage controlvm archiveteam-warrior-2 acpipowerbutton</pre>


If you've killed your warrior VM instances, then the work your warrior did has been lost, however the tasks will be returned to the pool after a period of time. If you want, you can alert the admins via IRC of what's happened, and they can clear the claims your username may have made. However, this isn't very important on most projects.
Substituting <code>suspend</code> or <code>resume</code> for <code>acpipowerbutton</code> suspends or resumes the VM. For more information, consult [http://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm the VirtualBox manual (Chapter 8, Sections 12 and 13)].


=== I closed my browser or tab with the warrior's web interface. Will those tasks be lost? ===
On VMWare, use this command:


No, the web browser interface just provides, well, a user interface to the warrior. As long as the VM is not stopped, it will continue normally.
<pre>vmrun start <path to vmx file> nogui</pre>


=== I need to disconnect my internet / reboot my PC, but I don't want to lose work. ===
Shut down with:


If you pause/suspend the warrior instance, most projects will allow resuming of work in progress when you unsuspend the warrior instance.
<pre>vmrun stop <path to vmx file> soft</pre>


If you decided to use the suspend feature in VirtualBox, please note that if you keep it suspended for too long (more than a few hours), the admins will assume that the item is lost and be re-queued. Using the suspend feature so that you can reboot your computer is perfectly fine.
Substituting <code>suspend</code> for <code>stop</code> suspends the VM. Resume with <code>start</code> again. For more information, including the paths to VMX files on different operating systems, consult [http://www.vmware.com/pdf/vix180_vmrun_command.pdf Using vmrun to Control Virtual Machines] (PDF), pages 10 and 11.


=== I told the warrior to shutdown from the interface but nothing has changed! What gives? ===
=== How can I set up the virtual machine as a system service (so that it starts up on boot and shuts down automatically)? ===


The warrior will attempt to finish the current running tasks before shutting down. If you need to shut down right away, go ahead. Your progress will be lost, however the jobs will eventually cycle out to another user.
If you are using VirtualBox and running a Linux distribution that uses the systemd init system (like most recent releases), you can follow the short instructions on [http://www.ericerfanian.com/automatically-starting-virtualbox-vms-on-archlinux-using-systemd/ this page]. (The page title specifies Arch Linux, but this will work for other distros as long as they run systemd.)


=== How much disk space will the warrior use? ===
=== How can I set up the virtual machine with directly-bridged networking instead of NAT? ===


Short answer: it depends on the project.
On VirtualBox, use these commands:


Long answer: because the way each project defines an item differently, the warrior may be downloading a small file or downloading a whole subsection of a website. The virtual machine is configured by default to use 60GB as an absolute maximum. Any unused virtual machine disk space is not used on the host computer. You may, however, run the virtual machine on less than 60GB if you like to live dangerously. We're downloading the internet after all!
<pre>vboxmanage modifyvm archiveteam-warrior-2 --nic1 bridged
vboxmanage modifyvm archiveteam-warrior-2 --bridgeadapter1 eth0</pre>


=== The secondary disk is using up space even though it's not running a project. ===
We presume you want to bind to <code>eth0</code>. Adjust as required. :)


Virtual machine disk images do not behave like a regular file. There are several ways to reclaim space:
VMWare installations should already be using bridged networking.


* Delete the second disk and put back an empty disk. The warrior should reformat the second disk.
=== How can I run the warrior without a virtual machine? (The VM has too much overhead for a VPS!) ===
* Delete the entire warrior application and re-import it.
* Use the [http://intgat.tigress.co.uk/rmy/uml/index.html zerofree] program and then clone the disk image. Reattach the cloned disk image.


=== I can't connect to localhost. ===
One option is running a Docker container (see [[#Alternative_virtual_machines|above]]). Docker is based on LXC, and the overhead is far less than running a full VM. If you plan on running the [https://github.com/ArchiveTeam/warrior-dockerfile warrior-dockerfile], make sure to publish the port to allow access to the web interface:


The application includes a configuration to set up port forwarding to the guest machine on port 8001 so you can access the interface through your web browser. If this does not happen, you may need to double check your machine's network settings.
<pre>docker run -d -p 8001:8001 archiveteam/warrior-dockerfile</pre>


=== The warrior can't connect to the internet. ===
This creates a direct port mapping. For host port 38001 to container port 8001, use <code>38001:8001</code>. Adjust as required. :P


It may be possible that the virtual machine has picked up the address of the local DNS cache on your computer which the virtual machine does not have access to.  
(Multiple projects can be also run in isolated environments (containers) for rapid deployment using [https://hub.docker.com/r/infrequent/at-as-dockerfile at-as-dockerfile].)


If you experience this on VirtualBox, see [http://askubuntu.com/questions/204953/virtualbox-dns-stopped-working-on-upgrade-to-12-10 this question and answer].
Another alternative is '''running the project manually.''' If you are managing a VPS, it's likely you are comfortable with some Linux stuff. Consult the project wiki page or the source code repository readme file.


=== I'm looking at the text scrolling by and I notice some errors. rsync is not working. ===
=== Why is the default project not working? / Why is a manual project not in the warrior yet? ===


Uh-oh! Something is not right. Notify us immediately in the appropriate [[IRC]] channel.
Sorry. Sometimes the administrators are too busy...


=== The item I'm working on is downloading thousands of URLs and it's taking hours. ===
=== Why are there no projects? ===


See the above question and reboot the warrior as appropriate.
We finished the ones we were working on! If there are no projects showing, you can [[Dev|help us write one]]. No projects does ''not'' mean there is nothing left to archive!


=== I'm looking at the leaderboard. What's that icon beside the username? ===
=== I'm looking at the leaderboard. What's that icon beside the username? ===


That's just the warrior logo: [[File:Archive_team.png|42px]] (click on the image for a larger version). It means that that person is using the warrior. Those without the icon are running the scripts manually.
That's just the warrior logo: [[File:Archive_team.png|42px]] (click on the image for a larger version). It means that that person is using the warrior. Those without the icon are running the scripts manually.
[[Image:Archiveteam-warrior-sticker.png‎|256px|right]]


=== What's that guy doing in the logo? ===
=== What's that guy doing in the logo? ===
Line 179: Line 195:
The place is on fire! But don't worry, he safely escaped with the rescued data in his arms.
The place is on fire! But don't worry, he safely escaped with the rescued data in his arms.


=== That’s awesome – can I slap this logo on my laptop to show my Internet-preservation pride? ===
[http://www.redbubble.com/people/ajhajh/works/12857655-archive-team-warrior-stickers?p=sticker You sure can!] The ArchiveTeam Warrior laptop sticker can start conversations about archiving, if you’re into that.
=== Where can I file a bug, suggestion, or a feature request? ===
If the issue is related to the warrior's web interface or the library that grab scripts are using, see [https://github.com/ArchiveTeam/seesaw-kit/issues seesaw-kit issues]. Other issues should be filed into their own [[Dev/Source_Code|repositories]].
=== I'd like to help write code. Where can I find more info? ===
Check out the [[Dev]] documentation for details on the infrastructure and details of the source code layout.


[[Image:Archiveteam-warrior-sticker.png‎|256px|right]]
=== I still have a question! ===
 
Check out the [[Frequently Asked Questions|general FAQ page]]. Talk to us on [[IRC]]. Use [irc://irc.efnet.org/warrior #warrior] for specific warrior questions or [irc://irc.efnet.org/archiveteam #archiveteam] for general questions.
 
== Troubleshooting ==
 
=== I'm getting errors when I try to launch the VM. ===


=== That’s awesome – can I slap this logo on my laptop to show my Internet-preservation pride? ===
If you are receiving <code>Breakpoint has been reached (0x80000003)</code>, <code>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</code>, or VT-X errors, you probably do not have virtualization enabled, either because it is turned off in your computer's BIOS or your CPU does not support it.


[http://www.redbubble.com/people/ajhajh/works/12857655-archive-team-warrior-stickers?p=sticker You sure can! The ArchiveTeam Warrior laptop sticker can start conversations about archiving, if you’re into that.]
You can check CPU support on Linux with <code>cat /proc/cpuinfo | grep "(vmx|svm)" | uniq</code>. If there is a line of output starting with "flags", your processor supports virtualization; if there is no output, it does not. You can check whether virtualization is enabled in the BIOS using the <code>rdmsr</code> utility in your distro's <code>msr-tools</code> package.


=== I want to log in to the virtual machine. How do I do this? ===
You can check support and BIOS status on Windows using [https://www.microsoft.com/en-us/download/details.aspx?id=592 Microsoft's Hardware-Assisted Virtualization Detection Tool] or [http://openlibsys.org/index-ja.html VirtualChecker].


Unless you know what you are doing, you should not need to do this. But if you want to, the username is <code>root</code> and the password is <code>archiveteam</code>. Then, you can execute <code>sudo -u warrior -i</code> to log in as the warrior user.  
To enable virtualization on a CPU with support, reboot the computer and enter the BIOS. The virtualization setting is usually under something like 'CPU configuration' or 'advanced settings'.


Press ALT+F3 to switch to virtual console number 3. Use ALT+Left or ALT+Right to switch between virtual consoles. There are 6 virtual consoles in total. Consoles 1 and 2 are reserved for the warrior.
=== I just imported the ova image and the warrior is stuck on "Preparing the data partition". ===


=== Can I run multiple virtual machines at the same time? ===
This issue has cropped up before, and we do not know what causes it. We recommend you delete the warrior image and import the ova again. Testing shows that such a reimport works in the majority of cases.


Yes, but you'll need to adjust the networking settings.
=== I can't connect to localhost. ===


On the machine, open up Settings → Network → Adapter 1 → Port Fowarding. You need to adjust the Host Port. For example, ensure your table looks like TCP | 127.0.0.1 | 8123 | | 8001. In this example, you can then visit http://localhost:8123/ as it maps port 8123 in your browser to port 8001 which the warrior uses.
The application is configured to set up port forwarding to the guest machine, and you should be able to access the interface through your web browser at port 8001. If this does not happen, you may need to double-check your machine's network settings (as described [[#How_can_I_run_multiple_virtual_machines_at_the_same_time.3F|above]]).


=== The warrior seems to have too much overhead. I can't run a VM in a VPS! ===
=== The warrior can't connect to the internet. ===


You don't need to run a virtual machine.
It's possible that the virtual machine has picked up the address of the local DNS cache on your computer, which the virtual machine does not have access to.  


An option is running Docker containers, based on LXC the overhead is far less than running a full VM on a VPS, it should be noted if you plan on running the ([https://github.com/ArchiveTeam/warrior-dockerfile warrior-dockerfile]) to publish the port to allow access to the web interface.
If you experience this on VirtualBox, see [http://askubuntu.com/questions/204953/virtualbox-dns-stopped-working-on-upgrade-to-12-10 this question and answer].
<pre> docker run -d -p 8001:8001 archiveteam/warrior-dockerfile </pre>


(Above is assumed direct mapping VPS port to container port so if you wanted say <code>port 38001</code> it would be <code>docker run -d -p 38001:8001 archiveteam/warrior-dockerfile </code>  Adjust as required. :P)
=== Why am I seeing a message that no item was received? ===


It means that there is no work available. This can happen for several reasons:


If you are managing a VPS, it's likely you are comfortable with some Linux stuff. '''Projects can be run manually.''' Consult the project wiki page or the source code repository readme file.
* The project has just finished and someone is inspecting the work done. If a problem is discovered, items may be re-queued and more work will become available.
* You have checked out/claimed too many items. Reduce your concurrency and let others do some of the work too.
* In a rare case, you have been banned by a tracker administrator because there was a problem with your work: you were requesting too much, you were tampering with the scripts, a malfunction has occurred, or your internet connection is "unclean" (see [[#Can_I_use_whatever_internet_access_for_the_warrior.3F|above]]).


(Note that multiple projects can be also run in isolated environments(containers) for rapid deployment using: ([https://hub.docker.com/r/infrequent/at-as-dockerfile at-as-dockerfile]))
=== Why am I seeing a message about rate limiting? ===


=== Why a virtual machine in the first place? ===
Keep in mind that although downloading the internet for fun and digital preservation are the primary goals of all Archive Team activities, serious stress on the target's server may occur. The rate limit is imposed by a [[Tracker#People|tracker administrator]] and should not be subverted.


The virtual machine is a quick, safe, and easy way for newcomers to help us out. It offers many features:
(In other words, we don't want to DDoS the servers.)


* Graphical interface
=== Why am I seeing a message about code being out of date? ===
* Automatically selects which project is important to run
* Self-updating software infrastructure
* Allows for unattended use
* In case of software faults, your machine is not ruined
* Restarts itself in case of runaway programs
* Runs on Windows, Mac, and Linux painlessly
* Ensures consistency in the archived data regardless of your machine's quirks


If you have suggestions for improving this system, please talk to us as described below.
Because there is a new update ready. You do not need to do anything about this; the warrior will update its code every hour. If you are impatient, please restart the warrior and it will download the latest code and resume work.


=== I'm running the scripts manually in a VPS but it says the code is out of date a while later ===
=== I'm running the scripts manually and I see a message about code being out of date. ===


It happens when a bug in the scripts is discovered. Bugs are unavoidable especially when the server is out of our control.
It happens when a bug in the scripts is discovered. Bugs are unavoidable especially when the server is out of our control.
Line 233: Line 261:
Try the <code>--auto-update</code> option available in Seesaw version 0.8. However, please be aware that you are now executing code automatically. Be sure to run the scripts in a separate user account for safety.
Try the <code>--auto-update</code> option available in Seesaw version 0.8. However, please be aware that you are now executing code automatically. Be sure to run the scripts in a separate user account for safety.


=== I just imported the ova image and the warrior is stuck on "Preparing the data partition" ===
=== I see messages about rsync errors. ===


This issue has cropped up before and we do not know what causes it. It is recommended to just delete the warrior image and import the ova again. Testing shows that such a reimport works in the majority of cases.
Uh-oh! Something is not right. Please notify us immediately in the appropriate [[IRC]] channel.


=== Why is the default project not working? / Why is a manual project not in the Warrior yet? ===
=== I told the warrior to shut down from the interface, but nothing has changed. ===


Sorry. Sometimes the administrators are too busy...
The warrior will attempt to finish the current running tasks before shutting down. If you need to shut down right away, go ahead. Your progress will be lost, but the jobs will eventually cycle out to another user.
 
=== The warrior is eating all my bandwidth! ===
 
On VirtualBox (relatively recent versions), use this command:
 
<pre>vboxmanage bandwidthctl archiveteam-warrior-2 add limit --type network --limit 3m</pre>


=== Why are there no projects? ===
This will limit the warrior to 3Mb/s. (Limit units are <code>k</code> for kilobit, <code>m</code> for megabit, <code>g</code> for gigabit, <code>K</code> for kilobyte, <code>M</code> for megabyte, and <code>G</code> for gigabyte.)  Adjust as required. :)


If there are no projects showing, you can help us write one. No projects does ''not'' mean there is nothing left to archive!
In the latest version of VirtualBox on Windows, the syntax appears to have changed. The correct command now seems to be:


=== The instructions to run the software/scripts are awful and they are difficult to set up. ===
<pre>VBoxManage bandwidthctl archiveteam-warrior-2 add netlimit --type network --limit 3</pre>


Well, excuuuuse me, princess!
For more information, consult [http://www.virtualbox.org/manual/ch06.html#network_bandwidth_limit the VirtualBox manual (Chapter 6, Section 9)].


We're not a professional support team so help us help you help us all. See below for bug reports, suggestions, or contribute writing code.
On VMWare (versions 9 and above), select a virtual machine and open Settings → Hardware → Virtual Network Adapter → Advanced. You can set a bandwidth limit here.


=== Help I'm getting  errors when I try to launch the VM ===
=== The warrior is using up disk space, even though it's not running a project! ===
If you are receiving ''"Breakpoint has been reached (0x80000003)"'', ''"A critical error has occurred while running the virtual machine and the machine execution has been stopped."'' or VT-X errors you probably have virtualization disabled in you computer's BIOS or your CPU may not support virtualization. You can check this using [http://openlibsys.org/index-ja.html VirtualChecker]


To enable virtualization reboot the computer and enter the BIOS, the virtualization setting is usually under CPU configuration or Advanced settings.
Virtual machine disk images do not behave like a regular file. There are several ways to safely reclaim space:


=== Where can I file a bug, suggestion, or a feature request? ===
* Delete the second disk and put back an empty disk. The warrior should reformat the second disk.
* Delete the entire warrior application and re-import it.
* Use the [http://intgat.tigress.co.uk/rmy/uml/index.html zerofree] program and then clone the disk image. Reattach the cloned disk image.


If the issue is related to the warrior's web interface or the library that grab scripts are using, see [https://github.com/ArchiveTeam/seesaw-kit/issues seesaw-kit issues]. Other issues should be filed into their own [[Dev/Source_Code|repositories]].
=== The item I'm working on is downloading thousands of URLs and it's taking hours. ===


=== I'd like to help write code. Where can I find more info? ===
Please notify us in the appropriate [[IRC]] channel. You may need to reboot the warrior.


Check out the [[Dev]] documentation for details on the infrastructure and details of the source code layout.
=== The instructions to run the software/scripts are awful and they are difficult to set up. ===


=== I still have a question! ===
Well, excuuuuse me, princess!


Check out the [[Frequently Asked Questions|general FAQ page]]. Talk to us on [[IRC]]. Use [irc://irc.efnet.org/warrior #warrior] for specific warrior questions or [irc://irc.efnet.org/archiveteam #archiveteam] for general questions.
We're not a professional support team so help us help you help us all. See above for [[#Where_can_I_file_a_bug.2C_suggestion.2C_or_a_feature_request.3F|bug reports]], [[#Where_can_I_file_a_bug.2C_suggestion.2C_or_a_feature_request.3F|suggestions]], or [[#I.27d_like_to_help_write_code._Where_can_I_find_more_info.3F|code contributions]].


== Projects ==
== Projects ==


See: [[Warrior projects]].
See [[Warrior projects]].


== Are you a coder? ==
== Are you a coder? ==

Revision as of 06:01, 15 June 2017

What is the Archive Team Warrior?

Archive team.png
Warrior-vm-screenshot.png
Warrior-web-screenshot.png

The Archive Team Warrior is a virtual archiving appliance. You can run it to help with the ArchiveTeam archiving efforts. It will download sites and upload them to our archive — and it’s really easy to do!

The warrior is a virtual machine, so there is no risk to your computer. The warrior will only use your bandwidth and some of your disk space. It will get tasks from and report progress to the Tracker.

Basic usage

The warrior runs on Windows, OS X and Linux using a virtual machine. You'll need one of:

Quick start instructions for VirtualBox

  1. Download the appliance (174MB).
  2. Launch VirtualBox
  3. In VirtualBox, click File > Import Appliance and open the file.
  4. Start the virtual machine.
    • It will fetch the latest updates and will eventually tell you to start your web browser.
  5. Using your regular web browser, visit http://localhost:8001/
  6. On the left, click "Your settings".
  7. Choose a username - we'll show your progress on the leaderboard.
  8. On the left, click "Available projects" tab and pick a project to work on.
    • Even better: select "ArchiveTeam's Choice" to let your warrior work on the most urgent project.

Start instructions for VMWare Player

  1. Download the appliance (174MB).
  2. Launch VMWare Player
  3. In Player on the right, click "Open Virtual Machine", open the file and import the virtual machine.
  4. Select the virtual machine and click "Edit virtual machine settings".
    • Select "Hard Disk 2 (IDE)" > "Advanced..." and change it to "IDE 1:0"
    • Select Network Adapter and set it to "Bridged: Connected directly to the physical network"
  5. Start the virtual machine.
    • It will fetch the latest updates and will eventually tell you to start your web browser.
  6. Using your regular web browser, visit the address that is shown on the bottom (e.g. http://192.168.0.100:8001/)
  7. On the left, click "Your settings".
  8. Choose a username - we'll show your progress on the leaderboard.
  9. On the left, click "Available projects" tab and pick a project to work on.
    • Even better: select "ArchiveTeam's Choice" to let your warrior work on the most urgent project.


Alternative virtual machines

Thanks to user-effort, there are alternatives:

Please note that these alternatives are not in widespread use by our warriors, so we may not be able to help with either issues or advanced usage.

Warrior FAQ

Why a virtual machine in the first place?

The virtual machine is a quick, safe, and easy way for newcomers to help us out. It offers many features:

  • Graphical interface
  • Automatically selects which project is important to run
  • Self-updating software infrastructure
  • Allows for unattended use
  • In case of software faults, your machine is not ruined
  • Restarts itself in case of runaway programs
  • Runs on Windows, Mac, and Linux painlessly
  • Ensures consistency in the archived data regardless of your machine's quirks

If you have suggestions for improving this system, please talk to us as described below.

Can I use whatever internet access for the warrior?

No. We need "clean" connections. Please ensure the following:

  • No OpenDNS. No ISP DNS that redirects to a search page. Use non-captive DNS servers.
  • No ISP connections that inject advertisements into web pages.
  • No proxies. Proxies can return bad data. The original HTTP headers and IP address are needed for the WARC file.
  • No content-filtering firewalls.
  • No censorship. If you believe your country implements censorship, do not run a warrior.
  • No Tor. The server may return an error page instead of content if they ban exit nodes.
  • No free cafe wifi. Archiving your cafe's wifi service agreement repeatedly is not helpful.
  • We prefer connections from many public IP addresses if possible. (For example, if your apartment building uses a single IP address, we don't want your apartment banned.)

I turned my warrior VM appliance off. Will those tasks be lost?

If you've killed your warrior VM instance, then the work your warrior did has been lost. However, the tasks will be returned to the pool after a period of time, and other warriors may claim them. If you want, you can alert the admins via IRC of what's happened and they can clear the claims your username may have made. but this isn't very important on most projects.

I closed my browser or tab with the warrior's web interface. Will those tasks be lost?

No. The web browser interface just provides a user interface to the warrior. As long as the VM is not stopped, it will continue normally.

I need to disconnect my internet / reboot my PC. How can I do this without losing work?

If you pause/suspend the warrior instance, most projects will allow resuming of work in progress when you unsuspend the warrior instance.

If you decide to use the suspend feature, please note that if you keep it suspended for too long (more than a few hours), the administrators will assume that the item is lost and re-queue it. Using the suspend feature so that you can reboot your computer is perfectly fine.

How much disk space will the warrior use?

Short answer: it depends on the project. (But never more than 60GB.)

Long answer: because each project defines items differently, sizes may vary. A single task may be a small file or a whole subsection of a website. The virtual machine is configured by default to use an absolute maximum of 60GB. Any unused virtual machine disk space is not used on the host computer. You may run the virtual machine on less than 60GB if you like to live dangerously. We're downloading the internet, after all!

How can I log in to the virtual machine?

Unless you know what you are doing, you should not need to do this. But, if you want to, the username is root and the password is archiveteam. Once logged in as root, you can execute sudo -u warrior -i to log in as the warrior user.

Press ALT+F3 to switch to virtual console number 3. Use ALT+Left or ALT+Right to switch between virtual consoles. There are 6 virtual consoles in total. Consoles 1 and 2 are reserved for the warrior.

How can I run multiple virtual machines at the same time?

You'll need to adjust the networking settings.

In VirtualBox, select a virtual machine and open up Settings → Network → Adapter 1 → Port Fowarding. You need to adjust the host port. For example, set your table to TCP | 127.0.0.1 | 8123 | | 8001. This maps port 8123 on the host machine (your computer) to port 8001 on the virtual machine (the warrior), and you can then access the warrior's web interface from port 8123 in your browser.

Each VM you want to access should have a different host port. Do not use port numbers below 1024 unless you know what you are doing.

VMWare installations should be using bridged networking. However, if you want, you can switch to NAT (under Settings → Hardware → Virtual Network Adapter) and click Edit to set up port forwarding. On Linux, you can also use lines like 8123 = 192.168.0.100:8001 in the [incomingtcp] section of nat.conf. (Make sure the VM IP is correct!)

How can I run the virtual machine headlessly (without leaving a window open)?

On VirtualBox, use this command:

vboxmanage startvm archiveteam-warrior-2 --type headless

Shut down the VM with:

vboxmanage controlvm archiveteam-warrior-2 acpipowerbutton

Substituting suspend or resume for acpipowerbutton suspends or resumes the VM. For more information, consult the VirtualBox manual (Chapter 8, Sections 12 and 13).

On VMWare, use this command:

vmrun start <path to vmx file> nogui

Shut down with:

vmrun stop <path to vmx file> soft

Substituting suspend for stop suspends the VM. Resume with start again. For more information, including the paths to VMX files on different operating systems, consult Using vmrun to Control Virtual Machines (PDF), pages 10 and 11.

How can I set up the virtual machine as a system service (so that it starts up on boot and shuts down automatically)?

If you are using VirtualBox and running a Linux distribution that uses the systemd init system (like most recent releases), you can follow the short instructions on this page. (The page title specifies Arch Linux, but this will work for other distros as long as they run systemd.)

How can I set up the virtual machine with directly-bridged networking instead of NAT?

On VirtualBox, use these commands:

vboxmanage modifyvm archiveteam-warrior-2 --nic1 bridged
vboxmanage modifyvm archiveteam-warrior-2 --bridgeadapter1 eth0

We presume you want to bind to eth0. Adjust as required. :)

VMWare installations should already be using bridged networking.

How can I run the warrior without a virtual machine? (The VM has too much overhead for a VPS!)

One option is running a Docker container (see above). Docker is based on LXC, and the overhead is far less than running a full VM. If you plan on running the warrior-dockerfile, make sure to publish the port to allow access to the web interface:

docker run -d -p 8001:8001 archiveteam/warrior-dockerfile

This creates a direct port mapping. For host port 38001 to container port 8001, use 38001:8001. Adjust as required. :P

(Multiple projects can be also run in isolated environments (containers) for rapid deployment using at-as-dockerfile.)

Another alternative is running the project manually. If you are managing a VPS, it's likely you are comfortable with some Linux stuff. Consult the project wiki page or the source code repository readme file.

Why is the default project not working? / Why is a manual project not in the warrior yet?

Sorry. Sometimes the administrators are too busy...

Why are there no projects?

We finished the ones we were working on! If there are no projects showing, you can help us write one. No projects does not mean there is nothing left to archive!

I'm looking at the leaderboard. What's that icon beside the username?

That's just the warrior logo: Archive team.png (click on the image for a larger version). It means that that person is using the warrior. Those without the icon are running the scripts manually.

Archiveteam-warrior-sticker.png

What's that guy doing in the logo?

The place is on fire! But don't worry, he safely escaped with the rescued data in his arms.

That’s awesome – can I slap this logo on my laptop to show my Internet-preservation pride?

You sure can! The ArchiveTeam Warrior laptop sticker can start conversations about archiving, if you’re into that.

Where can I file a bug, suggestion, or a feature request?

If the issue is related to the warrior's web interface or the library that grab scripts are using, see seesaw-kit issues. Other issues should be filed into their own repositories.

I'd like to help write code. Where can I find more info?

Check out the Dev documentation for details on the infrastructure and details of the source code layout.

I still have a question!

Check out the general FAQ page. Talk to us on IRC. Use #warrior for specific warrior questions or #archiveteam for general questions.

Troubleshooting

I'm getting errors when I try to launch the VM.

If you are receiving Breakpoint has been reached (0x80000003), A critical error has occurred while running the virtual machine and the machine execution has been stopped., or VT-X errors, you probably do not have virtualization enabled, either because it is turned off in your computer's BIOS or your CPU does not support it.

You can check CPU support on Linux with cat /proc/cpuinfo | grep "(vmx|svm)" | uniq. If there is a line of output starting with "flags", your processor supports virtualization; if there is no output, it does not. You can check whether virtualization is enabled in the BIOS using the rdmsr utility in your distro's msr-tools package.

You can check support and BIOS status on Windows using Microsoft's Hardware-Assisted Virtualization Detection Tool or VirtualChecker.

To enable virtualization on a CPU with support, reboot the computer and enter the BIOS. The virtualization setting is usually under something like 'CPU configuration' or 'advanced settings'.

I just imported the ova image and the warrior is stuck on "Preparing the data partition".

This issue has cropped up before, and we do not know what causes it. We recommend you delete the warrior image and import the ova again. Testing shows that such a reimport works in the majority of cases.

I can't connect to localhost.

The application is configured to set up port forwarding to the guest machine, and you should be able to access the interface through your web browser at port 8001. If this does not happen, you may need to double-check your machine's network settings (as described above).

The warrior can't connect to the internet.

It's possible that the virtual machine has picked up the address of the local DNS cache on your computer, which the virtual machine does not have access to.

If you experience this on VirtualBox, see this question and answer.

Why am I seeing a message that no item was received?

It means that there is no work available. This can happen for several reasons:

  • The project has just finished and someone is inspecting the work done. If a problem is discovered, items may be re-queued and more work will become available.
  • You have checked out/claimed too many items. Reduce your concurrency and let others do some of the work too.
  • In a rare case, you have been banned by a tracker administrator because there was a problem with your work: you were requesting too much, you were tampering with the scripts, a malfunction has occurred, or your internet connection is "unclean" (see above).

Why am I seeing a message about rate limiting?

Keep in mind that although downloading the internet for fun and digital preservation are the primary goals of all Archive Team activities, serious stress on the target's server may occur. The rate limit is imposed by a tracker administrator and should not be subverted.

(In other words, we don't want to DDoS the servers.)

Why am I seeing a message about code being out of date?

Because there is a new update ready. You do not need to do anything about this; the warrior will update its code every hour. If you are impatient, please restart the warrior and it will download the latest code and resume work.

I'm running the scripts manually and I see a message about code being out of date.

It happens when a bug in the scripts is discovered. Bugs are unavoidable especially when the server is out of our control.

Try the --auto-update option available in Seesaw version 0.8. However, please be aware that you are now executing code automatically. Be sure to run the scripts in a separate user account for safety.

I see messages about rsync errors.

Uh-oh! Something is not right. Please notify us immediately in the appropriate IRC channel.

I told the warrior to shut down from the interface, but nothing has changed.

The warrior will attempt to finish the current running tasks before shutting down. If you need to shut down right away, go ahead. Your progress will be lost, but the jobs will eventually cycle out to another user.

The warrior is eating all my bandwidth!

On VirtualBox (relatively recent versions), use this command:

vboxmanage bandwidthctl archiveteam-warrior-2 add limit --type network --limit 3m

This will limit the warrior to 3Mb/s. (Limit units are k for kilobit, m for megabit, g for gigabit, K for kilobyte, M for megabyte, and G for gigabyte.) Adjust as required. :)

In the latest version of VirtualBox on Windows, the syntax appears to have changed. The correct command now seems to be:

VBoxManage bandwidthctl archiveteam-warrior-2 add netlimit --type network --limit 3

For more information, consult the VirtualBox manual (Chapter 6, Section 9).

On VMWare (versions 9 and above), select a virtual machine and open Settings → Hardware → Virtual Network Adapter → Advanced. You can set a bandwidth limit here.

The warrior is using up disk space, even though it's not running a project!

Virtual machine disk images do not behave like a regular file. There are several ways to safely reclaim space:

  • Delete the second disk and put back an empty disk. The warrior should reformat the second disk.
  • Delete the entire warrior application and re-import it.
  • Use the zerofree program and then clone the disk image. Reattach the cloned disk image.

The item I'm working on is downloading thousands of URLs and it's taking hours.

Please notify us in the appropriate IRC channel. You may need to reboot the warrior.

The instructions to run the software/scripts are awful and they are difficult to set up.

Well, excuuuuse me, princess!

We're not a professional support team so help us help you help us all. See above for bug reports, suggestions, or code contributions.

Projects

See Warrior projects.

Are you a coder?

Like the warrior? Interested in how it works under the hood? Got software skills? Help us improve it!