
Research
Malicious npm Package Brand-Squats TanStack to Exfiltrate Environment Variables
A brand-squatted TanStack npm package used postinstall scripts to steal .env files and exfiltrate developer secrets to an attacker-controlled endpoint.
github.com/scaleway/scaleway-cli
Advanced tools
Interact with Scaleway API from the command line.


Read the blog post.
help [COMMAND]attach [OPTIONS] SERVERcommit [OPTIONS] SERVER [NAME]cp [OPTIONS] SERVER:PATH|HOSTPATH|- SERVER:PATH|HOSTPATH|-create [OPTIONS] IMAGEevents [OPTIONS]exec [OPTIONS] SERVER [COMMAND] [ARGS...]history [OPTIONS] IMAGEimages [OPTIONS]info [OPTIONS]inspect [OPTIONS] IDENTIFIER [IDENTIFIER...]kill [OPTIONS] SERVERlogin [OPTIONS]logout [OPTIONS]logs [OPTIONS] SERVERport [OPTIONS] SERVER [PRIVATE_PORT[/PROTO]]ps [OPTIONS]rename [OPTIONS] SERVER NEW_NAMErestart [OPTIONS] SERVER [SERVER...]rm [OPTIONS] SERVER [SERVER...]rmi [OPTIONS] IMAGE [IMAGE...]run [OPTIONS] IMAGE [COMMAND] [ARGS...]search [OPTIONS] TERMstart [OPTIONS] SERVER [SERVER...]stop [OPTIONS] SERVER [SERVER...]tag [OPTIONS] SNAPSHOT NAMEtop [OPTIONS] SERVERversion [OPTIONS]wait [OPTIONS] SERVER [SERVER...]A command-line tool to manage Scaleway servers Γ -la-Docker.
For node version, check out scaleway-cli-node.
We recommend to use the latest version, using:
:warning: Ensure you have a go version >= 1.5
GO15VENDOREXPERIMENT=1 go get -u github.com/scaleway/scaleway-cli/cmd/scw
or
brew tap scaleway/scaleway
brew install scaleway/scaleway/scw --HEAD
To install a release, checkout the latest release page.
Install the latest stable release on Mac OS X using Homebrew:
brew install scw
Install the latest stable release on Mac OS X manually:
# prepare for first install and upgrade
mkdir -p /usr/local/bin
mv /usr/local/bin/scw /tmp/scw.old
# get latest release
wget "https://github.com/scaleway/scaleway-cli/releases/download/v1.11.0/scw_1.11.0_darwin_amd64.zip" -O /tmp/scw.zip
unzip /tmp/scw.zip \*/scw -d /tmp
mv /tmp/scw_*/scw /usr/local/bin
rm -rf /tmp/scw.zip /tmp/scw_*_darwin_amd64
# test
scw version
Install the latest release on Linux:
# get latest release
export ARCH=amd64 # can be 'i386', 'amd64' or 'armhf'
wget "https://github.com/scaleway/scaleway-cli/releases/download/v1.11.0/scw_1.11.0_${ARCH}.deb" -O /tmp/scw.deb
dpkg -i /tmp/scw.deb && rm -f /tmp/scw.deb
# test
scw version
By using the static-compiled release binaries, you only needs to have one of the following platform+architecture :
| Platform | Architecture |
|---|---|
| Darwin (Mac OS X) | i386, x86_64 |
| FreeBSD | arm, i386, x86_64 |
| Linux | arm, armv7, armv7, i386, x86_64 |
| Windows | x86_64 |
You can run scaleway-cli in a sandboxed way using Docker.
:warning: caching is disabled
$ docker run -it --rm --volume=$HOME/.scwrc:/.scwrc scaleway/cli ps
>= 1.5$GOPATH and $PATH well configured, something like:export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/binexport GO15VENDOREXPERIMENT=1go get github.com/scaleway/scaleway-cli/...scwScaleway-cli is written in Go, the code is splitted across multiple go-getable packages
Usage inspired by Docker CLI
$ scw
Usage: scw [OPTIONS] COMMAND [arg...]
Interact with Scaleway from the command line.
Options:
-h, --help=false Print usage
-D, --debug=false Enable debug mode
-V, --verbose=false Enable verbose mode
-q, --quiet=false Enable quiet mode
--sensitive=false Show sensitive data in outputs, i.e. API Token/Organization
-v, --version=false Print version information and quit
--region=par1 Change the default region (e.g. ams1)
Commands:
help help of the scw command line
attach Attach to a server serial console
commit Create a new snapshot from a server's volume
cp Copy files/folders from a PATH on the server to a HOSTDIR on the host
create Create a new server but do not start it
events Get real time events from the API
exec Run a command on a running server
history Show the history of an image
images List images
info Display system-wide information
inspect Return low-level information on a server, image, snapshot, volume or bootscript
kill Kill a running server
login Log in to Scaleway API
logout Log out from the Scaleway API
logs Fetch the logs of a server
port Lookup the public-facing port that is NAT-ed to PRIVATE_PORT
ps List servers
rename Rename a server
restart Restart a running server
rm Remove one or more servers
rmi Remove one or more image(s)/volume(s)/snapshot(s)
run Run a command in a new server
search Search the Scaleway Hub for images
start Start a stopped server
stop Stop a running server
tag Tag a snapshot into an image
top Lookup the running processes of a server
version Show the version information
wait Block until a server stops
Run 'scw COMMAND --help' for more information on a command.
Login
$ scw login
Login (cloud.scaleway.com): xxxx@xx.xx
Password:
$
Run a new server my-ubuntu
$ scw run --name=my-ubuntu ubuntu-trusty bash
[...] wait about a minute for the first boot
root@my-ubuntu:~#
See ./examples/ directory
scw attachUsage: scw attach [OPTIONS] SERVER
Attach to a running server serial console.
Options:
-h, --help=false Print usage
--no-stdin=false Do not attach stdin
Examples:
$ scw attach my-running-server
$ scw attach $(scw start my-stopped-server)
$ scw attach $(scw start $(scw create ubuntu-vivid))
scw commitUsage: scw commit [OPTIONS] SERVER [NAME]
Create a new snapshot from a server's volume.
Options:
-h, --help=false Print usage
-v, --volume=0 Volume slot
Examples:
$ scw commit my-stopped-server
$ scw commit -v 1 my-stopped-server
scw cpUsage: scw cp [OPTIONS] SERVER:PATH|HOSTPATH|- SERVER:PATH|HOSTPATH|-
Copy files/folders from a PATH on the server to a HOSTDIR on the host
running the command. Use '-' to write the data as a tar file to STDOUT.
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--p, --port=22 Specify SSH port
--user=root Specify SSH user
Examples:
$ scw cp path/to/my/local/file myserver:path
$ scw cp --gateway=myotherserver path/to/my/local/file myserver:path
$ scw cp myserver:path/to/file path/to/my/local/dir
$ scw cp myserver:path/to/file myserver2:path/to/dir
$ scw cp myserver:path/to/file - > myserver-pathtofile-backup.tar
$ scw cp myserver:path/to/file - | tar -tvf -
$ scw cp path/to/my/local/dir myserver:path
$ scw cp myserver:path/to/dir path/to/my/local/dir
$ scw cp myserver:path/to/dir myserver2:path/to/dir
$ scw cp myserver:path/to/dir - > myserver-pathtodir-backup.tar
$ scw cp myserver:path/to/dir - | tar -tvf -
$ cat archive.tar | scw cp - myserver:/path
$ tar -cvf - . | scw cp - myserver:path
scw createUsage: scw create [OPTIONS] IMAGE
Create a new server but do not start it.
Options:
--bootscript="" Assign a bootscript
--commercial-type=VC1S Create a server with specific commercial-type C1, VC1[S|M|L], C2[S|M|L]
-e, --env="" Provide metadata tags passed to initrd (i.e., boot=rescue INITRD_DEBUG=1)
-h, --help=false Print usage
--ip-address=dynamic Assign a reserved public IP, a 'dynamic' one or 'none'
--name="" Assign a name
--tmp-ssh-key=false Access your server without uploading your SSH key to your account
-v, --volume="" Attach additional volume (i.e., 50G)
Examples:
$ scw create docker
$ scw create 10GB
$ scw create --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB
$ scw inspect $(scw create 1GB --bootscript=rescue --volume=50GB)
$ scw create $(scw tag my-snapshot my-image)
$ scw create --tmp-ssh-key 10GB
scw eventsUsage: scw events [OPTIONS]
Get real time events from the API.
Options:
-h, --help=false Print usage
scw execUsage: scw exec [OPTIONS] SERVER [COMMAND] [ARGS...]
Run a command on a running server.
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--p, --port=22 Specify SSH port
-T, --timeout=0 Set timeout values to seconds
--user=root Specify SSH user
-w, --wait=false Wait for SSH to be ready
Examples:
$ scw exec myserver
$ scw exec myserver bash
$ scw exec --gateway=myotherserver myserver bash
$ scw exec myserver 'tmux a -t joe || tmux new -s joe || bash'
$ SCW_SECURE_EXEC=1 scw exec myserver bash
$ scw exec -w $(scw start $(scw create ubuntu-trusty)) bash
$ scw exec $(scw start -w $(scw create ubuntu-trusty)) bash
$ scw exec myserver tmux new -d sleep 10
$ scw exec myserver ls -la | grep password
$ cat local-file | scw exec myserver 'cat > remote/path'
scw helpUsage: scw help [COMMAND]
Help prints help information about scw and its commands.
By default, help lists available commands with a short description.
When invoked with a command name, it prints the usage and the help of
the command.
Options:
-h, --help=false Print usage
scw historyUsage: scw history [OPTIONS] IMAGE
Show the history of an image.
Options:
--arch=* Specify architecture
-h, --help=false Print usage
--no-trunc=false Don't truncate output
-q, --quiet=false Only show numeric IDs
scw imagesUsage: scw images [OPTIONS]
List images.
Options:
-a, --all=false Show all images
-f, --filter="" Filter output based on conditions provided
-h, --help=false Print usage
--no-trunc=false Don't truncate output
-q, --quiet=false Only show numeric IDs
Examples:
$ scw images
$ scw images -a
$ scw images -q
$ scw images --no-trunc
$ scw images -f organization=me
$ scw images -f organization=official-distribs
$ scw images -f organization=official-apps
$ scw images -f organization=UUIDOFORGANIZATION
$ scw images -f name=ubuntu
$ scw images -f type=image
$ scw images -f type=bootscript
$ scw images -f type=snapshot
$ scw images -f type=volume
$ scw images -f public=true
$ scw images -f public=false
$ scw images -f "organization=me type=volume" -qsc
scw infoUsage: scw info [OPTIONS]
Display system-wide information.
Options:
-h, --help=false Print usage
scw inspectUsage: scw inspect [OPTIONS] IDENTIFIER [IDENTIFIER...]
Return low-level information on a server, image, snapshot, volume or bootscript.
Options:
--arch=* Specify architecture
-b, --browser=false Inspect object in browser
-f, --format="" Format the output using the given go template
-h, --help=false Print usage
Examples:
$ scw inspect my-server
$ scw inspect server:my-server
$ scw inspect --browser my-server
$ scw inspect a-public-image
$ scw inspect image:a-public-image
$ scw inspect my-snapshot
$ scw inspect snapshot:my-snapshot
$ scw inspect my-volume
$ scw inspect volume:my-volume
$ scw inspect my-image
$ scw inspect image:my-image
$ scw inspect my-server | jq '.[0].public_ip.address'
$ scw inspect $(scw inspect my-image | jq '.[0].root_volume.id')
$ scw inspect -f "{{ .PublicAddress.IP }}" my-server
$ scw --sensitive inspect my-server
scw killUsage: scw kill [OPTIONS] SERVER
Kill a running server.
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
scw loginUsage: scw login [OPTIONS]
Generates a configuration file in '/home/$USER/.scwrc'
containing credentials used to interact with the Scaleway API. This
configuration file is automatically used by the 'scw' commands.
You can get your credentials on https://cloud.scaleway.com/#/credentials
Options:
-h, --help=false Print usage
-o, --organization="" Organization
-s, --skip-ssh-key=false Don't ask to upload an SSH Key
-t, --token="" Token
scw logoutUsage: scw logout [OPTIONS]
Log out from the Scaleway API.
Options:
-h, --help=false Print usage
scw logsUsage: scw logs [OPTIONS] SERVER
Fetch the logs of a server.
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--p, --port=22 Specify SSH port
--user=root Specify SSH user
scw portUsage: scw port [OPTIONS] SERVER [PRIVATE_PORT[/PROTO]]
List port mappings for the SERVER, or lookup the public-facing port that is NAT-ed to the PRIVATE_PORT
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--p, --port=22 Specify SSH port
--user=root Specify SSH user
scw psUsage: scw ps [OPTIONS]
List servers. By default, only running servers are displayed.
Options:
-a, --all=false Show all servers. Only running servers are shown by default
-f, --filter="" Filter output based on conditions provided
-h, --help=false Print usage
-l, --latest=false Show only the latest created server, include non-running ones
-n=0 Show n last created servers, include non-running ones
--no-trunc=false Don't truncate output
-q, --quiet=false Only display numeric IDs
Examples:
$ scw ps
$ scw ps -a
$ scw ps -l
$ scw ps -n=10
$ scw ps -q
$ scw ps --no-trunc
$ scw ps -f state=booted
$ scw ps -f state=running
$ scw ps -f state=stopped
$ scw ps -f ip=212.47.229.26
$ scw ps -f tags=prod
$ scw ps -f tags=boot=live
$ scw ps -f image=docker
$ scw ps -f image=alpine
$ scw ps -f image=UUIDOFIMAGE
$ scw ps -f arch=ARCH
$ scw ps -f server-type=COMMERCIALTYPE
$ scw ps -f "state=booted image=docker tags=prod"
scw renameUsage: scw rename [OPTIONS] SERVER NEW_NAME
Rename a server.
Options:
-h, --help=false Print usage
scw restartUsage: scw restart [OPTIONS] SERVER [SERVER...]
Restart a running server.
Options:
-h, --help=false Print usage
-T, --timeout=0 Set timeout values to seconds
-w, --wait=false Synchronous restart. Wait for SSH to be ready
scw rmUsage: scw rm [OPTIONS] SERVER [SERVER...]
Remove one or more servers.
Options:
-f, --force=false Force the removal of a server
-h, --help=false Print usage
Examples:
$ scw rm myserver
$ scw rm -f myserver
$ scw rm my-stopped-server my-second-stopped-server
$ scw rm $(scw ps -q)
$ scw rm $(scw ps | grep mysql | awk '{print $1}')
scw rmiUsage: scw rmi [OPTIONS] IDENTIFIER [IDENTIFIER...]
Remove one or more image(s)/volume(s)/snapshot(s)
Options:
-h, --help=false Print usage
Examples:
$ scw rmi myimage
$ scw rmi mysnapshot
$ scw rmi myvolume
$ scw rmi $(scw images -q)
scw runUsage: scw run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new server.
Options:
-a, --attach=false Attach to serial console
--bootscript="" Assign a bootscript
--commercial-type=VC1S Start a server with specific commercial-type C1, VC1[S|M|L], C2[S|M|L]
-d, --detach=false Run server in background and print server ID
-e, --env="" Provide metadata tags passed to initrd (i.e., boot=rescue INITRD_DEBUG=1)
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--ip-address="" Assign a reserved public IP, a 'dynamic' one or 'none' (default to 'none' if gateway specified, 'dynamic' otherwise)
--ipv6=false Enable IPV6
--name="" Assign a name
--p, --port=22 Specify SSH port
--rm=false Automatically remove the server when it exits
--show-boot=false Allows to show the boot
-T, --timeout=0 Set timeout value to seconds
--tmp-ssh-key=false Access your server without uploading your SSH key to your account
-u, --userdata="" Start a server with userdata predefined
--user=root Specify SSH User
-v, --volume="" Attach additional volume (i.e., 50G)
Examples:
$ scw run ubuntu-trusty
$ scw run --commercial-type=C2S ubuntu-trusty
$ scw run --show-boot --commercial-type=C2S ubuntu-trusty
$ scw run --rm ubuntu-trusty
$ scw run -a --rm ubuntu-trusty
$ scw run --gateway=myotherserver ubuntu-trusty
$ scw run ubuntu-trusty bash
$ scw run --name=mydocker docker docker run moul/nyancat:armhf
$ scw run --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB bash
$ scw run --attach alpine
$ scw run --detach alpine
$ scw run --tmp-ssh-key alpine
$ scw run --userdata="FOO=BAR FILE=@/tmp/file" alpine
β β β β β β scw run docker β β β β β
β βββββββββββββββββββββββββββββ β
βserver=$(scw create docker)β
β βββββββββββββββββββββββββββββ β
+
β βββββββββββββββββββ β
βscw start $SERVERβ
β βββββββββββββββββββ β
+
βββββββββββββββββββββββββββββββββββββ
βscw exec --wait $SERVER /bin/bashβ
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β
scw searchUsage: scw search [OPTIONS] TERM
Search the Scaleway Hub for images.
Options:
-h, --help=false Print usage
--no-trunc=false Don't truncate output
scw startUsage: scw start [OPTIONS] SERVER [SERVER...]
Start a stopped server.
Options:
-h, --help=false Print usage
-T, --timeout=0 Set timeout values to seconds
-w, --wait=false Synchronous start. Wait for SSH to be ready
scw stopβ scaleway-cli git:(master) β clear; scw help stop
Usage: scw stop [OPTIONS] SERVER [SERVER...]
Stop a running server.
Options:
-h, --help=false Print usage
-t, --terminate=false Stop and trash a server with its volumes
-w, --wait=false Synchronous stop. Wait for SSH to be ready
Examples:
$ scw stop my-running-server my-second-running-server
$ scw stop -t my-running-server my-second-running-server
$ scw stop $(scw ps -q)
$ scw stop $(scw ps | grep mysql | awk '{print $1}')
$ scw stop server && stop wait server
$ scw stop -w server
scw tagUsage: scw tag [OPTIONS] SNAPSHOT NAME
Tag a snapshot into an image.
Options:
-h, --help=false Print usage
--bootscript="" Assign a bootscript
scw topUsage: scw top [OPTIONS] SERVER
Lookup the running processes of a server.
Options:
-g, --gateway="" Use a SSH gateway
-h, --help=false Print usage
--p, --port=22 Specify SSH port
--user=root Specify SSH user
scw versionUsage: scw version [OPTIONS]
Show the version information.
Options:
-h, --help=false Print usage
scw waitβ scaleway-cli git:(master) β clear; scw help wait
Usage: scw wait [OPTIONS] SERVER [SERVER...]
Block until a server stops.
Options:
-h, --help=false Print usage
Create a server with Ubuntu Trusty image and 3.2.34 bootscript
$ scw create --bootscript=3.2.34 trusty
df271f73-60ce-47fd-bd7b-37b5f698d8b2
Create a server with Fedora 21 image
$ scw create 1f164079
7313af22-62bf-4df1-9dc2-c4ffb4cb2d83
Create a server with an empty disc of 20G and rescue bootscript
$ scw create --bootscript=rescue 20G
5cf8058e-a0df-4fc3-a772-8d44e6daf582
Run a stopped server
$ scw start 7313af22
7313af22-62bf-4df1-9dc2-c4ffb4cb2d83
Run a stopped server and wait for SSH to be ready
$ scw start --wait myserver
myserver
$ scw exec myserver /bin/bash
[root@noname ~]#
Run a stopped server and wait for SSH to be ready (inline version)
$ scw exec $(scw start --wait myserver) /bin/bash
[root@noname ~]#
Create, start and ssh to a new server (inline version)
$ scw exec $(scw start --wait $(scw create ubuntu-trusty)) /bin/bash
[root@noname ~]#
or
$ scw exec --wait $(scw start $(scw create ubuntu-trusty)) /bin/bash
[root@noname ~]#
Wait for a server to be available, then execute a command
$ scw exec --wait myserver /bin/bash
[root@noname ~]#
Run a command in background
$ scw exec alpine tmux new -d "sleep 10"
Run a stopped server and wait for SSH to be ready with a global timeout of 150 seconds
$ scw start --wait --timeout=150 myserver
global execution... failed: Operation timed out.
Wait for a server to be in 'stopped' state
$ scw wait 7313af22
[...] some seconds later
0
Attach to server serial port
$ scw attach 7313af22
[RET]
Ubuntu Vivid Vervet (development branch) nfs-server ttyS0
my-server login:
^C
$
Create a server with Fedora 21 image and start it
$ scw start `scw create 1f164079`
5cf8058e-a0df-4fc3-a772-8d44e6daf582
Execute a 'ls -la' on a server (via SSH)
$ scw exec myserver ls -la
total 40
drwx------. 4 root root 4096 Mar 26 05:56 .
drwxr-xr-x. 18 root root 4096 Mar 26 05:56 ..
-rw-r--r--. 1 root root 18 Jun 8 2014 .bash_logout
-rw-r--r--. 1 root root 176 Jun 8 2014 .bash_profile
-rw-r--r--. 1 root root 176 Jun 8 2014 .bashrc
-rw-r--r--. 1 root root 100 Jun 8 2014 .cshrc
drwxr-----. 3 root root 4096 Mar 16 06:31 .pki
-rw-rw-r--. 1 root root 1240 Mar 12 08:16 .s3cfg.sample
drwx------. 2 root root 4096 Mar 26 05:56 .ssh
-rw-r--r--. 1 root root 129 Jun 8 2014 .tcshrc
Run a shell on a server (via SSH)
$ scw exec 5cf8058e /bin/bash
[root@noname ~]#
List public images and my images
$ scw images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
user/Alpine_Linux_3_1 latest 854eef72 10 days ago 50 GB
Debian_Wheezy_7_8 latest cd66fa55 2 months ago 20 GB
Ubuntu_Utopic_14_10 latest 1a702a4e 4 months ago 20 GB
...
List public images, my images and my snapshots
$ scw images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
noname-snapshot <none> 54df92d1 a minute ago 50 GB
cool-snapshot <none> 0dbbc64c 11 hours ago 20 GB
user/Alpine_Linux_3_1 latest 854eef72 10 days ago 50 GB
Debian_Wheezy_7_8 latest cd66fa55 2 months ago 20 GB
Ubuntu_Utopic_14_10 latest 1a702a4e 4 months ago 20 GB
List running servers
$ scw ps
SERVER ID IMAGE COMMAND CREATED STATUS PORTS NAME
7313af22 user/Alpine_Linux_3_1 13 minutes ago running noname
32070fa4 Ubuntu_Utopic_14_10 36 minutes ago running labs-8fe556
List all servers
$ scw ps -a
SERVER ID IMAGE COMMAND CREATED STATUS PORTS NAME
7313af22 user/Alpine_Linux_3_1 13 minutes ago running noname
32070fa4 Ubuntu_Utopic_14_10 36 minutes ago running labs-8fe556
7fc76a15 Ubuntu_Utopic_14_10 11 hours ago stopped backup
Stop a running server
$ scw stop 5cf8058e
5cf8058e
Stop multiple running servers
$ scw stop myserver myotherserver
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
Terminate a running server
$ scw stop -t myserver
901d082d-9155-4046-a49d-94355344246b
Stop all running servers matching 'mysql'
$ scw stop $(scw ps | grep mysql | awk '{print $1}')
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
36756e6e-3146-4b89-8248-abb060fc5b61
Create a snapshot of the root volume of a server
$ scw commit 5cf8058e
54df92d1
Delete a stopped server
$ scw rm 5cf8
5cf8082d-9155-4046-a49d-94355344246b
Delete multiple stopped servers
$ scw rm myserver myotherserver
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
Delete all stopped servers matching 'mysql'
$ scw rm $(scw ps -a | grep mysql | awk '{print $1}')
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
36756e6e-3146-4b89-8248-abb060fc5b61
Create a snapshot of nbd1
$ scw commit 5cf8058e -v 1
f1851f99
Create an image based on a snapshot
$ scw tag 87f4526b my_image
46689419
Delete an image
$ scw rmi 46689419
Send a 'halt' command via SSH
$ scw kill 5cf8058e
5cf8058e
Inspect a server
$ scw inspect 90074de6
[
{
"server": {
"dynamic_ip_required": true,
"name": "My server",
"modification_date": "2015-03-26T09:01:07.691774+00:00",
"tags": [
"web",
"production"
],
"state_detail": "booted",
"public_ip": {
"dynamic": true,
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"address": "212.47.xxx.yyy"
},
"state": "running",
}
]
Show public ip address of a server
$ scw inspect myserver | jq '.[0].public_ip.address'
212.47.xxx.yyy
View full commits list
api.scaleway.com -> cp-par1.scaleway.comtty.scaleway.com/v2 -> tty-par1.scaleway.com/v2ams1, you can start a server at Amsterdam with scw --region="ams1" run yakketyscw image -a -f type=volume fix unmarshal error on size fieldscw ps do not display empty server with --filterView full commits list
scw login fix CheckCredentials (418)View full commits list
deleteServerSafe -> deleteServerForce-V--region to change the defaut regionscw exec --gateway remove hardcoded 30 seconds sleep (#254)ScalewayServer add DNS fields (#157)scw [logs|exec|cp|port|run|top] add --user && --port (#396)scw ps sort the servers by CreationDate (#391)scw [run|start] Add --set-state flagscw login Add motd when you are already logged (#371)scw _ips add --detach flag--commercial-type=c2m (#374)scw run handle --ipv6 flagscw create handle --ipv6 flagscw inspect fix panic (#353)scw _patch bootscript nil dereferencescw images bad error message (#336)scw login with Windows (#341)enable_ipv6 field (#334)scw _patch handles ipv6=[true|false]ScalewayIPV6Definitionscw _userdata handles @~/path/to/file (#321)scw _billing for new instance types (#293)View full commits list
View full commits list
ScalewayBootscript structurescw _userdata fix bug when we have multiple '=' in the value (#320)scw ps add commercial-type columnSCW_SECURE_EXEC instead of exec_execscaleway_api_endpoint environment variablescw login don't ask to upload ssh key when there is no keysView full commits list
scw exec Add warning to try to clean the cache when an error occurredSCW_[COMPUTE|ACCOUNT|METADATA|MARKETPLACE]_API environment variablescw login_markerplacescw rename fix nil dereference (#289)scw [run|create] --ip-address=[none|dynamic] (#283) (@ElNounch)scw ps -f server-type=COMMERCIALTYPE (#280)scw ps -f arch=XXX (#278)scw info Use json fingerprint field exposed by APIView full commits list
View full commits list
ssh exec on host without public ip nor gateway (#171)ssh-host-fingerprints when it's available (#194)scw rmi snapshot|volume (#258)fatal and ExitParty to Godepscw run --userdata=... (#202)scw _security-groups (#197)scw tag --arch=XXXscw run --timeout=X (#239)scw run | exec -w(#229)SCW_GOTTY_URL environment variableView full commits list
scw create|run --ip-address (#235)scw run --show-boot option (#156)gotty-client instead of termjs-cliscw info (#130)SCALEWAY_VERBOSE_API to make the API more verbosescw _ips command ... (#196)scw info (#191)scw info (#177)scw _userdata name VAR=@/path/to/file (#183)scw restart -w (#185)scw inspect (#204)View full commits list
scw tag --bootscript="" option (#149)scw info now prints user/organization info from the API (#130)user_data API (#150)create-image-from-s3.sh example and now auto-filling image metadata (title and bootscript) based on the Makefile configurationscw rm -f/--force option (#158)scw _userdata local ... option which interacts with the Metadata API without authentication (#166)scw _billing (price estimation tool) (#118)View full commits list
-D,--debug mode shows ready to copy-paste curl commands when using the API (must be used with --sensitive to unhide private token)_patch SERVER tags="tag1 tag2=value2 tag3"scw -D login displays a fake passwordscw login (#129)scw login ask your login/password, you can also pass token and organization with -o and -t (#59)scw images --filter option (type, organization, name, public) (#134)scw {ps,images} --filter option (images: type,organization,name,public; ps:state,ip,tags,image) (#134)scw run in a non-detached modescw {run,create} option (#99)scw run --rm option (#117)--gateway=login@host (#110)scw login (#100)scw run, can be disabled with the new flag --quietscw -V/--verbose option (#83)scw inspect --browser optionscw _flush-cache internal commandscw run --gateway ... or SCW_GATEWAY="..." scw run ... now creates a server without public ip address (#74)scw inspect TYPE:xxx TYPE:yyy will only refresh cache for TYPESCALEWAY_TLSVERIFY=0 env var (#115)goxc for releasesscw search TERM was not restricting results based on TERM-D/--debug outputsView full commits list
scw top's usageView full commits list
scw run -d option (#69)View full commits list
_patch SERVER security_group and _patch SERVER bootscriptscw exec SERVER [COMMAND] [ARGS...], COMMAND is now optionalscw run <image> [COMMAND] without COMMANDscw attach --no-stdin optionscw inspect (#64)scw --sensitive option (#64)scw run --attach option (#65)scw {create,run}, prefixing root-volume with the server hostname (#63)scw {create,run} IMAGE, IMAGE can be a snapshot (#19)scw stop -w, --wait optionscw inspect my-server == scw inspect server:my-server
It may be useful if you have the same name in a server and a volumescw inspect -f was always exiting 0scw images -a does not prefix snapshots, volumes and bootscripts (only images)scw run ... waits for 30 seconds before polling the APIscw stop server1 server2 doesn't exit on first stopping failurescw run IMAGE [COMMAND], default COMMAND is now if [ -x /bin/bash ]; then exec /bin/bash; else exec /bin/sh; fiscw run|create SNAPSHOT, raised an error if snapshot does not have base volumescw stop -t removes server entry from cacheView full commits list
scw cp from {server-path,local-path,stdin} to {server-path,local-path,stdout} (#56)scw logout command_patch experimental command (#57)_completion command (shell completion helper) (#45)scw inspect (#50)scw ps (#54)inspect --format optionexec --timeout option (#31)images -a and inspect (#49)~/.scwrc unix permissions + added a warning if the file is too open (#48)go get-able and splitted into packagesscw start -w and scw exec -w (#46)scw exec fails (#42)scw login parameters parsingView full commits list
First Golang version. For previous Node.js versions, see scaleway-cli-node.
attach commandcommit command
commit -v, --volume optioncp commandcreate command
create --bootscript optioncreate -e, --env optioncreate --name optioncreate -v, --volume optionevents commandexec command
exec -w, --wait optionhelp commandhistory command
history --no-trunc optionhistory -q, --quiet optionimages command
images -a, --all optionimages --no-trunc optionimages -q, --quiet optioninfo commandinspect commandkill commandlogin commandlogs commandport commandps command
ps -a, --all optionps -n optionps -l, --latest optionps --no-trunc optionps -q, --quiet optionrename commandrestart commandrm commandrmi commandrun command
run --bootscript optionrun -e, --env optionrun --name optionrun -v, --volume optionsearch command
search --no-trunc optionstart command
start -w, --wait optionstart -T, --timeout optionstop command
stop -t, --terminate optiontag commandtop commandversion commandwait commandgopkg.in/scaleway/scaleway-cli.v1
First Node.js version
Feel free to contribute :smiley::beers:
$GOPATH and $PATH well configured, something like:export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/bingo get -d github.com/scaleway/scaleway-cli/...cd $GOPATH/src/github.com/scaleway/scaleway-cliemacsmake./scwFAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A brand-squatted TanStack npm package used postinstall scripts to steal .env files and exfiltrate developer secrets to an attacker-controlled endpoint.

Research
Compromised SAP CAP npm packages download and execute unverified binaries, creating urgent supply chain risk for affected developers and CI/CD environments.

Company News
Socket has acquired Secure Annex to expand extension security across browsers, IDEs, and AI tools.